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
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)
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()))
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)