Désolé pour la question paresseuse. Je veux connaître la syntaxe SQL Server 2005 pourdatetime serveur sql clause where
SELECT *
FROM myTable
WHERE myDateTimeField > "4am this morning"
Merci d'avance pour votre aide.
Désolé pour la question paresseuse. Je veux connaître la syntaxe SQL Server 2005 pourdatetime serveur sql clause where
SELECT *
FROM myTable
WHERE myDateTimeField > "4am this morning"
Merci d'avance pour votre aide.
Utilisation:
SELECT *
FROM myTable
WHERE myDateTimeField > DATEADD(hh, 4, DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0))
Ce:
DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
... retournera un DATETIME à minuit le jour en cours. Donc le DATEADD externe ajoute quatre heures à cette date à minuit pour vous donner un DATETIME à 4 heures ce matin.
Référence:
Essayez
SELECT * FROM myTable
WHERE myDateTimeField >
DateAdd(hour, 4, DateAdd(day, DateDiff(day, 0, getdate()), 0))
Et juste pour être différent, et sans doute plus court/plus lisible que les autres offres:
SELECT *
FROM myTable
WHERE myDateTimeField >
cast(convert(varchar, getdate(), 101) + ' 4AM' as datetime)
Bien sûr, vous ne voudrez peut-être pas vraiment coder en dur 4 heures, mais si vous le faites, cette façon est claire et évidente de transmettre votre intention.
FYI: La méthode la plus rapide de troncation de date SQL Server consiste à utiliser l'approche DATEADD/DATEDIFF. –
@omg, vous rapide –