如何比较交货日期为今天的日期部分

use*_*929 16 sql-server getdate

我正在尝试创建一个报告,从当前交付日期的SQL Server数据库中获取记录.

我试过了

select * from (tablename)
where delivery_date = getdate()
Run Code Online (Sandbox Code Playgroud)

虽然这没有给我任何错误,但它也没有给我任何记录.

我假设这是因为所有日期都是这样的:

2016-03-15 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

也许,我需要截断日期以删除时间戳然后尝试?

Dhr*_*shi 40

您可以尝试如下查询

select * from (tablename)
where CAST(delivery_date as date) = CAST(getdate() as date)
Run Code Online (Sandbox Code Playgroud)

此外,如果所有交货日期都有时间部分00:00:00.000,那么肯定

select * from (tablename)
where delivery_date = CAST(getdate() as date) 
Run Code Online (Sandbox Code Playgroud)

会好起来的.


Sli*_*ost 5

如果delivery_date总是午夜( 00:00:00.000),那么比较如下:

select * from (tablename)
where delivery_date = datediff(d, 0, getdate())
Run Code Online (Sandbox Code Playgroud)

像这样使用datediff是截断日期时间值的时间部分的快速方法。