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)
会好起来的.
如果delivery_date总是午夜( 00:00:00.000
),那么比较如下:
select * from (tablename)
where delivery_date = datediff(d, 0, getdate())
Run Code Online (Sandbox Code Playgroud)
像这样使用datediff
是截断日期时间值的时间部分的快速方法。