Как я могу получить записи из 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)