我使用的是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())”。
答案 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