SQL, где столбец datetime равен сегодняшней дате?

Как я могу получить записи из db, где создана дата сегодня?

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

Это не работает с использованием SQL Server 2000, а дата представления - поле даты

Ответ 1

Похоже, вы используете SQL Server, и в этом случае GETDATE() или current_timestamp могут вам помочь. Но вам нужно будет убедиться, что формат даты, с которой вы сравниваете даты системы, совпадает (часовой пояс, гранулярность и т.д.),

например

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

Ответ 2

Можете ли вы попробовать это?

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

У T-SQL действительно нет "подразумеваемого" каста, как это делает С# - вам нужно явно использовать CAST (или CONVERT).

Кроме того, используйте GETDATE() или CURRENT_TIMESTAMP чтобы получить дату и время "сейчас".

Обновление: поскольку вы работаете с SQL Server 2000 - ни один из этих подходов пока не работает. Попробуйте это вместо этого:

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

Ответ 3

Возможно, будет другой путь, но это должно работать:

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)