SQL où la colonne datetime est égale à la date d'aujourd'hui?

Comment puis-je obtenir les enregistrements d'une base de données où la date de création est la date d'aujourd'hui?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATE(Submission_date) = DATE(NOW())

cela ne fonctionne pas im en utilisant sql server 2000 et la date de soumission est un champ date time

28
demandé sur Beginner 2012-08-14 19:04:43

3 réponses

on dirait que vous utilisez SQL Server, auquel cas GETDATE() ou current_timestamp peut vous aider. Mais vous devez vous assurer que le format de la date avec laquelle vous comparez les dates du système correspond (fuseau horaire, granularité, etc.)

e.g.

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)
37
répondu davek 2012-08-14 15:18:20

Pouvez-vous essayer?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE CAST(Submission_date AS DATE) = CAST(GETDATE() AS DATE)

T-SQL n'a pas vraiment le casting "implicite" comme C# does - vous devez explicitement utiliser CAST (ou CONVERT).

Aussi, utilisez GETDATE() ou CURRENT_TIMESTAMP pour obtenir le" maintenant " date et heure.

mise à Jour: puisque vous travaillez contre SQL Server 2000 - aucune de ces approches jusqu'à présent le travail. Essayez plutôt ceci:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, submission_date)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
24
répondu marc_s 2012-08-14 15:20:35

Il y a peut être une autre façon, mais cela devrait fonctionner:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET] 
WHERE day(Submission_date)=day(now) and 
     month(Submission_date)=month(now)
     and year(Submission_date)=year(now)
4
répondu Allie 2012-08-14 15:29:59