Obtenir la date de demain
j'essaie d'obtenir la date de tomorrows dans une déclaration sql pour une comparaison de date mais cela ne fonctionne pas.
ci-dessous est mon code:
select *
from tblcalendarentries
where convert(varchar,tblcalendarentries.[Start Time],101)
= convert(varchar, GETDATE() +1, 101)
5 réponses
pour obtenir la date de demain, vous pouvez utiliser le code ci-dessous qui ajoutera 1 jour à la date du système actuel:
SELECT DATEADD(day, 1, GETDATE())
renvoie l'horodatage actuel du système de base de données en tant que valeur datetime sans décalage du fuseau horaire de la base de données. Cette valeur est dérivée du système d'exploitation de L'ordinateur sur lequel L'instance de SQL Server est en cours d'exécution.
DATEADD (datepart, number , date)
Retourne une date spécifiée avec le nombre spécifié de l'intervalle (entier signé) ajouté à une partie de cette date.
donc ajouter ceci à votre code dans le WHERE
l'article:
WHERE CONVERT(VARCHAR, tblcalendarentries.[Start Time], 101) =
CONVERT(VARCHAR, DATEADD(DAY, 1, GETDATE()), 101);
tout d'Abord, GETDATE()
vous obtiendrez la date d'aujourd'hui dans le format suivant:
2013-04-16 10:10:02.047
puis en utilisant DATEADD()
, vous permet d'ajouter (ou soustraire si nécessaire), une date ou un intervalle de temps à partir d'une date spécifiée. Ainsi l'intervalle pourrait être: année, mois, jour, heure, minute, etc.
travailler avec des fuseaux horaires?
Si vous travaillez avec des systèmes de traverser les fuseaux horaires, vous pouvez aussi envisager d'utiliser GETUTCDATE()
:
renvoie le timestamp actuel du système de base de données comme valeur datetime. Le décalage horaire de la base de données n'est pas inclus. Cette valeur représente L'heure UTC courante (coordonnée Temps Universel). Cette valeur est dérivée du système d'exploitation de L'ordinateur sur lequel L'instance de SQL Server est en cours d'exécution.
Essayez de le ci-dessous:
SELECT GETDATE() + 1
cela ajoute un jour à la date actuelle
spécifiez la taille de varchar
convert()
where convert(varchar(11),tblcalendarentries.[Start Time],101) = convert(varchar(11), GETDATE() +1, 101)
je voudrais écrire:
where
DATEADD(day,DATEDIFF(day,0,tblcalendarentries.[Start Time]),0) =
DATEADD(day,DATEDIFF(day,0,GETDATE()),1)
cela évite de convertir les dates en chaînes entièrement, tout en enlevant la portion de temps des deux valeurs.
je pense que si vous ajoutez un à la date, il donnera la date du lendemain.
DATE+1
ça devrait aller. Désolé, je n'ai pas accès à code SQL SERVER ici pour fournir du code