0

我使用 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())”。

4

2 回答 2

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)
于 2013-01-21T18:16:10.443 回答
1

尝试

SELECT * 
FROM tbl 
WHERE DATEDIFF(DD, [FieldDate], getdate()) = 0
于 2013-01-21T18:21:00.223 回答