Calculer l'année fiscale dans SQL Server
Comment calcule l'exercice à partir d'un champ de date dans une vue dans SQL Server?
source d'informationauteur R0b0tn1k
Vous devez vous connecter pour publier un commentaire.
Comment calcule l'exercice à partir d'un champ de date dans une vue dans SQL Server?
source d'informationauteur R0b0tn1k
Vous devez vous connecter pour publier un commentaire.
Je vous suggère d'utiliser une Fonction Définie par l'Utilisateur basée sur l'Exercice de votre application.
L'utiliser comme ceci:
Ici est Australien exercice date de début de code
Il retourne comme
'2012-07-01 00:00:00.000'
Dans ce cas, l'Exercice commence le 7/1. C'est la solution la plus simple.
Je ne pense pas que vous pouvez, car il n'est pas universelle, calendrier fiscal. Les exercices varient entre les entreprises et les pays.
ADDENDUM: Ce que vous devez faire est d'avoir une table DB consistant en un exercice date de début, et un exercice date de fin de chaque année. Utiliser les données de ce tableau pour calculer l'exercice financier donné, à une date particulière.
Vous avez besoin de plus qu'un simple champ de le faire...
Vous devriez vérifier votre définition de l'exercice car il varie d'une entreprise à l'
Donné
@FiscalYearStartMonth
est votre exercice de début de mois (numérique)et
@Date
est la date en question, procédez de la manière suivante:Vous pouvez abstraite de cette distance dans une fonction, ou l'utiliser comme une colonne dans un dérivé de vue
Expression la plus simple pour ce cas:
YEAR(DATEADD(month, 3, Date))
L'Exercice Financier Fédéral
Je viens de réaliser que la réponse par Brett Veenstra est faux. Ne devrait pas L'EXERCICE devrait être calculé comme ceci?:
Je l'ai étendu la réponse posté par ChrisF et Conficker.
Voici le code dynamique pour le royaume-UNI,
Vous pouvez contourner basé sur des besoins différents,
Début de l'exercice:
Fin de l'Exercice:
Remplacer
getdate()
avec votre propre date si nécessaireVoici ma version qui renvoie exercice FYyyyy - exercice social commence le 7/1
c'est à dire 6/1/2015 -> FY1415, 7/1/2015 -> FY1516
Fonctions de chaîne pourrait être mieux...
Plus simple pour les Australiens 🙂
(ANNÉE(DATEADD(Mois,-((DATEPART(Mois, le[Date])+5) %12),[la Date]))+) Financial_Year
La manière la plus simple -
DECLARE @DATE DATETIME = '2016/07/1'
-- Début De L'Exercice
SÉLECTIONNEZ CONVERTIR(DATETIME, (CAST(ANNÉE(@DATE) - SI(MOIS(@DATE) > 6, 0, 1) VARCHAR) + '-7-1'))
-- Fin De L'Exercice
SÉLECTIONNEZ CONVERTIR(DATETIME, (CAST(ANNÉE(@DATE) + IIF(MOIS(@DATE) > 6, 1, 0) VARCHAR) + '-6-30'))