web-dev-qa-db-fra.com

SQL où la colonne date/heure 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 du jour?

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

Cela ne fonctionne pas avec SQL Server 2000 et la date de soumission est un champ de date et heure 

29
Beginner

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

par exemple.

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)
40
davek

Pouvez-vous essayer cela?

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 la conversion "implicite" comme C #, vous devez utiliser explicitement CAST (ou CONVERT).

Utilisez également GETDATE() ou CURRENT_TIMESTAMP pour obtenir la date et l’heure «maintenant».

Mise à jour: puisque vous travaillez contre SQL Server 2000 - aucune de ces approches ne fonctionne jusqu'à présent. Essayez ceci à la place:

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

Il pourrait y avoir un autre moyen, mais cela devrait marcher: 

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
Allie

Une solution facile consiste à utiliser une condition comme celle-ci (utilisez la date souhaitée> GETDATE () - 1)

votre instruction SQL "date spécifique"> GETDATE () - 1

0
Neyomal