2017-10-16 4 views
0

Je suis arrivé cette requête:requête SQL Server où DATETIME

select IDS as data 
from dbo.SKz 
where dbo.SKz.DatSave >= 2008-12-20 

et il fonctionne bien. Mais quand je veux requête en heures et minutes:

select IDS as data 
from dbo.SKz 
where dbo.SKz.DatSave >= 2008-12-20 23:59:59 

Je reçois une erreur:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '23'.

DatSave est une colonne datetime. Exemple de ligne = 2008-12-26 13:44:37.000

Où est le problème? Je vous remercie.

+4

Les citations manquantes, ''2008-12-20 23: 59: 59'' – jarlh

+5

La première requête ne fonctionne pas comme vous le pensez ... 2008-12-20 = 1976. – jarlh

+0

Merci, avec des citations cela fonctionne :) –

Répondre

4

Vous devez placer des guillemets autour de celui-ci.

select IDS as data from dbo.SKz WHERE dbo.SKz.DatSave>= '2008-12-20 23:59:59' 
0

Vous avez besoin de guillemets. Cependant, je recommande fortement l'un des deux éléments suivants:

select IDS as data 
from dbo.SKz 
where dbo.SKz.DatSave >= '2008-12-21' 

ou:

select IDS as data 
from dbo.SKz 
where dbo.SKz.DatSave >= dateadd(day, 1, '2008-12-20') 

Je suppose que vous ne voulez vraiment pas de valeurs date/heure qui sont une seconde avant minuit.