日期时间列等于今天日期的SQL?

Beg*_*ner 40 datetime sql-server-2000

如何从创建日期为今天日期的数据库中获取记录?

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

使用sql server 2000时,这不起作用,提交日期是日期时间字段

dav*_*vek 48

看起来你正在使用SQL Server,在这种情况下GETDATE()current_timestamp可能会帮助你.但是您必须确保比较系统日期的日期格式匹配(时区,粒度等)

例如

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)
Run Code Online (Sandbox Code Playgroud)

  • 注意:要使用 yyyy-mm-dd 格式,请使用 120 而不是 102。 (4认同)

mar*_*c_s 31

你能试试吗?

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

T-SQL实际上没有像C#那样的"暗示"转换 - 你需要明确地使用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()))
Run Code Online (Sandbox Code Playgroud)

  • 他正在使用SQL Server <2008,所以没有DATE类型. (3认同)

All*_*lie 5

可能还有另一种方法,但这应该可行:

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)
Run Code Online (Sandbox Code Playgroud)