Le moyen le plus efficace pour calculer le premier jour de l'Exercice en cours?
Quel est le moyen le plus efficace pour calculer le premier jour de l'actuelle (Australien) Exercice?
L'Australien EXERCICE commence le 01-juillet.
E. g.
SELECT dbo.FinancialYearStart('30-Jun-2011')
retourne 01-Jul-2010.
SELECT dbo.FinancialYearStart('01-Jul-2011')
retourne 01-Juil-2011.
SELECT dbo.FinancialYearStart('02-Jul-2011')
retourne 01-Juil-2011.
Rendement pour une date (comme maintenant) n'est pas vraiment important. Si vous voulez trouver cependant, les premiers jours de l' (Australien) exercices Financiers pour les dates stockées dans une table, c'est tout à fait différent.
OriginalL'auteur Merenzo | 2011-07-19
Vous devez vous connecter pour publier un commentaire.
Un DATEADD, un DATEDIFF, et une division:
Fondamentalement, vous comptez le nombre de mois depuis quelques arbitraire financiers de l'année date de début (j'ai choisi 1901), divisez ce nombre par 12 (en ignorant le reste), et d'ajouter que de nombreuses années, à la même arbitraire de l'année date de début.
SELECT DATEADD(year,DATEDIFF(year,'19010701','20110630'),'19010701')
Chaque fois que quelqu'un demande à un datetime question, j'essaie de le faire rentrer dans le DATEADD/DATEDIFF modèle et comme vous le dites, je dois le faire de cette façon pour faire face à ce que DATEDIFF fait calcule.
OriginalL'auteur Damien_The_Unbeliever
Je ne sais pas si c'est le plus efficace, mais c'est rapide au moins...
OriginalL'auteur Andreas Ågren
Extrait de l'année et le mois de la date. Alors ne
year = year + FLOOR((month-7) /6)
Puis votre date est 1-juil-année
(Vous n'avez pas besoin de les stocker en tant que variables.)
Quelque chose comme:
CONCATENATE('01-jul-', YEAR(date) + FLOOR((MONTH(date)-7) /6)
OriginalL'auteur Ariel
Un peu sophistiqué méthode (peut-être un petit peu trop):
OriginalL'auteur Andriy M
Maladroit, mais il fonctionne
OriginalL'auteur Stevietalbs