使用“今天”日期获取所有寄存器的最佳方法是什么?

时间:2013-01-21 18:07:29

标签: sql sql-server tsql sql-server-2005

我使用的是MS SQL Sever,我想只通过“今天”寄存器过滤我的查询,例如

select * from tbl where [FieldDate] >= "Today Date"

我知道我可以使用类似的东西:

[FieldDate] >= DATEADD(DAY, 0, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP))

[FieldDate] >= CAST(FLOOR( CAST( GETDATE() AS FLOAT))AS DATETIME)

但是,最好的方法是什么?,非常感谢。

注意:我不能使用“convert(date,getdate())”。

2 个答案:

答案 0 :(得分:3)

这应该有效:

SELECT * 
FROM tbl 
WHERE [FieldDate] >= CONVERT(DATE,GETDATE()) 
AND [FieldDate] < CONVERT(DATE,DATEADD(DAY,1,GETDATE()))

对于SQL Server 2005:

SELECT * 
FROM tbl 
WHERE [FieldDate] >= CONVERT(VARCHAR(8),GETDATE(),112) 
AND [FieldDate] < CONVERT(VARCHAR(8),DATEADD(DAY,1,GETDATE()),112)

答案 1 :(得分:1)

尝试

SELECT * 
FROM tbl 
WHERE DATEDIFF(DD, [FieldDate], getdate()) = 0