Cet article explore la fonction SQL DATEADD et son utilisation scénarios avec divers exemples.
Habituellement, nous travaillons avec le type de données date dans SQL Server. Nous devons également faire des manipulations avec les dates. Dans mon article précédent FONCTION SQL DATEPART, nous avons exploré pour récupérer une partie spécifique de la date telle que jour, année, mois, trimestre, jour de lannée.
Nous pouvons utiliser la fonction SQL SERVER DATEADD pour ajouter ou soustraire une période spécifique de a donne une date.
Syntaxe
DATEADD (datepart, nombre, date)
- Datepart: Il spécifie la partie de la date dans laquelle nous voulons ajouter ou soustraire un intervalle de temps spécifique. Il peut avoir des valeurs telles que lannée, le mois, le jour et la semaine. Nous explorerons plus en détail cela dans la section exemple
- Numéro: Cest le nombre par lequel nous voulons augmenter ou diminuer la date. Ce doit être un entier
- Date: nous pouvons spécifier la date ici. Dans cette date, nous voulons ajouter un nombre spécifié sur datepart
Supposons que nous voulions ajouter dix jours à la date actuelle. Dans cet exemple, les variables seraient
- Datepart value: Day
- Number: 5
- Date: Getdate () – Current date
Explorez la fonction SQL SERVER DATEADD avec des exemples
Types de données dans la fonction SQL SERVER DATEADD
Nous pouvons utiliser le type de données suivant dans lexpression de date.
- date
- DateHeure
- datetimeoffset
- datetime2
- smalldatetime
- time
Dans la requête suivante, nous avons déclaré une variable @date ayant un type de données datetime2. Nous pouvons utiliser la fonction SQL DATEADD selon la requête suivante.
Utilisation de la fonction SQL SERVER DATEADD pour obtenir des enregistrements dun table dans la plage de dates spécifiée
Nous pouvons utiliser la fonction SQL DATEADD pour récupérer les enregistrements dune table pendant une période. Dans la requête suivante, nous avons spécifié une date avec le paramètre @Startdate. Nous voulons récupérer les enregistrements de la table Orders. Nous devons obtenir des enregistrements entre @StartDate et @Enddate (ajoutez 1 heure à la date de début).
Nous obtenons la sortie suivante.
Utilisation de la fonction SQL SERVER DATEADD pour obtenir le décalage de date ou dheure
Nous pouvons utiliser la fonction SQL DATEADD pour obtenir le décalage horaire entre la date de début et la date de fin. Plusieurs fois, nous voulons utiliser la fonction SQL SERVER DATEADD pour obtenir la différence de date. Par exemple, nous voulons savoir combien de temps il a fallu pour terminer une commande ou combien de temps il a fallu pour aller de la maison au bureau.
Exécutez la requête suivante pour obtenir la différence entre lheure de début et lheure de fin. Nous utilisons la fonction SQL DATEADD avec la fonction SQL DATEDIFF.
Elle donne le temps écoulé en minutes. Nous avons spécifié la valeur 0 dans la fonction SQL DateADD. Il prend la valeur de date 1900-01-01 00: 00: 00.000
Nous pouvons utiliser le format de date SQL Convert pour représenter ceci au format HH: MM: SS.
Il donne le décalage horaire au format HH: MM: SS comme indiqué dans limage suivante.
Spécifiez le résultat de la fonction SQL SERVER DATEADD comme une nouvelle colonne
Nous pouvons utiliser la fonction SQL SERVER DATEADD pour obtenir une nouvelle colonne après avoir ajouté la valeur de date requise. Dans la requête suivante, nous voulons ajouter deux jours à la date de début et la représenter comme une nouvelle colonne.
Scalaire sous-requêtes et fonctions scalaires dans la fonction SQL DATEADD
Nous pouvons également utiliser la fonction SQL SERVER DATEADD avec des sous-requêtes scalaires et des fonctions scalaires. Dans la requête suivante, nous voulons ajouter le nombre de jours à la valeur de date max de LastEditedWhen dans la table Sales.orders.
La première sous-requête donne le nombre 16496 et la seconde sous-requête fournit une date. Nous avons utilisé la fonction SQL SERVER DATEADD pour ajouter le nombre de jours, et nous obtenons la sortie suivante.
Expressions numériques dans le Fonction SQL SERVER DATEADD
Nous pouvons également utiliser des expressions numériques dans la fonction SQL SERVER DATEADD. Dans la requête suivante, nous utilisons une expression numérique pour calculer le nombre et nous donner une sortie.
1
2
3
|
SELECT GETDATE () AS CurrentDate,
DATEADD (mois, – (12/6), GETDATE ()) AS ModifiedDate;
|
Utilisation de DATEADD avec la fonction Rank
Nous pouvons également utiliser la fonction SQL DATEADD dans une fonction rank. Nous pouvons lutiliser pour largument numérique. Dans la requête suivante, vous pouvez voir la fonction Row_Number () pour utiliser le paramètre de nombre et les valeurs comme paramètre de date.
Conclusion
Dans cet article, nous avons exploré diverses utilisations et exemples de la fonction SQL DATEADD. Il nous permet dajouter ou de soustraire des valeurs de datepart de la date spécifiée. Jespère que cet article vous plaira. Nhésitez pas à nous faire part de vos commentaires dans les commentaires ci-dessous.
- Auteur
- Messages récents
Il est le créateur de lune des plus grandes collections darticles en ligne gratuits sur un seul sujet, avec sa série de 50 articles sur les groupes de disponibilité Always On SQL Server. Sur la base de sa contribution à la communauté SQL Server, il a été récompensé par divers prix dont le prestigieux « Meilleur auteur de lannée » en continu en 2020 et 2021 chez SQLShack.
Raj est toujours intéressé par de nouveaux défis, donc si vous avez besoin de conseil aide sur tous les sujets traités dans ses écrits, il peut être contacté à [email protected]
Voir tous les articles de Rajendra Gupta
- Mise à niveau des versions mineures et majeures pour AWS RDS SQL Server – 29 janvier 2021
- Déploiement dinstances AWS RDS PostgreSQL – 27 janvier 2021
- Migration de vos bases de données SQL sur site vers AWS RDS SQL Server à laide dAWS DMS – 25 janvier , 2021