En utilisant ce guide, vous apprendrez à calculer la différence entre deux dates à l'aide de la fonction SQL Server DADAFIFF ().
Utilisation de base
La fonction Dadiff vous permet de passer les valeurs de date de début et de fin. Il calcule et renvoie ensuite la différence entre eux dans les années, les mois, les semaines, les jours, etc.
La syntaxe de fonction est comme:
DADIFF (unité, start_date, end_date);Arguments de fonction
La fonction trois arguments majeurs exprimés:
1. Unité - représente les unités sous laquelle la fonction rapportera la différence entre le début et la date de fin spécifiés. SQL Server ne prend pas en charge le passage de la valeur du paramètre unitaire en tant que variable d'une chaîne telle que «année»;
Le tableau ci-dessous montre l'unité et l'abréviation que vous pouvez utiliser dans le paramètre de l'unité.
abréviation unitaire2. start_date & end_date - définit les deux dates dont la différence doit être calculée. La valeur de l'un ou l'autre argument peut être une chaîne littérale ou une expression qui peut résoudre à une valeur de type: date, datetime, datetim2, datetimeoffset, heure, smalldatetime.
Pour éviter l'ambiguïté, envisagez d'utiliser quatre chiffres pour représenter une année.
Valeur de retour de fonction
La fonction DADIFF renvoie un type int, représentant la différence de date de début et de fin. Parfois, la différence peut être hors de portée pour la taille d'un entier. Si cela se produit, la fonction DADAIFF renvoie une erreur. Envisagez d'utiliser la fonction DADAFIF_BIG pour un tel scénario.
Exemples SQL Server Dadiff ()
Les exemples suivants sont utiles pour illustrer comment travailler avec la fonction Dadiff ().
Exemple 1:
Considérez l'exemple ci-dessous:
SELECT DADIFF (MOIS, «1998-09-06», «2022-06-06») comme différence;La requête ci-dessus doit renvoyer la différence du mois total entre la date de début et de fin:
différenceExemple 2:
Supposons que vous souhaitiez calculer combien de secondes y a-t-il en une journée? Vous pouvez utiliser la fonction DADAIFF comme indiqué:
SELECT DADIFF (Second, «2022-01-01», «2022-01-02») comme différence;L'exemple ci-dessus doit renvoyer le nombre de secondes en une journée en tant que:
-----------Exemple 3:
Vous pouvez rencontrer un scénario où la différence entre deux dates est grande que le maximum pour un type entier. Par exemple, la différence dans les nanosecondes en une journée.
Considérez l'exemple de requête ci-dessous:
SELECT DADIFF (Nanosecond, '2022-01-01', '2022-01-02') comme différence;Si nous exécutons la requête ci-dessus, SQL Server renvoie une erreur de débordement comme:
La fonction Dadiff a entraîné un débordement. Le nombre de dateparts séparant deux instances de date / heure est trop grande. Essayez d'utiliser Dadiff avec un DatePart moins précis.Pour résoudre ce problème, utilisez la fonction Dadiff_big comme:
SELECT DADIFF_BIG (Nanosecond, '2022-01-01', '2022-01-02') comme différence;Dans cet exemple, la requête renvoie le nombre de nanosecondes en une journée comme:
différenceExemple 4:
L'exemple ci-dessous vous montre comment calculer la différence en heures entre 1998 et 2021.
SELECT DADIFF (Hour, «1998-01-01», «2021-01-01»);La valeur résultante est comme:
-----------Exemple 5:
Étant donné que la valeur de retour de la fonction DADAIFF est un entier, nous pouvons le lancer dans une chaîne, vous permettant d'effectuer une concaténation de chaîne.
Par exemple:
SELECT CAST (DADIFF (Hour, «1998-01-01», «2021-01-01») comme Varchar (20)) + «heures»;L'exemple ci-dessus jette la valeur d'une chaîne entière et ajoute une concaténation de chaîne.
L'exemple de résultat est comme:
--------------------------Derniers mots
Nous espérons que vous avez apprécié et appris à calculer les différences entre deux dates en utilisant diverses unités dans SQL Server. Les exemples fournis dans ce guide peuvent vous aider à manipuler plus efficacement les données de date et d'heure.
Merci d'avoir lu!