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

时间:2016-03-15 18:05:18

标签: sql-server getdate

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

我试过

select * from (tablename)
where delivery_date = getdate()

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

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

2016-03-15 00:00:00.000

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

5 个答案:

答案 0 :(得分:26)

您可以尝试下面的查询

select * from (tablename)
where CAST(delivery_date as date) = CAST(getdate() as date)

此外,如果所有投放日期的时间部分都是00:00:00.000,那么

select * from (tablename)
where delivery_date = CAST(getdate() as date) 

会很好。

答案 1 :(得分:3)

如果delivery_date始终是午夜(00:00:00.000),那么请将其比较如下:

select * from (tablename)
where delivery_date = datediff(d, 0, getdate())

使用datediff这样可以快速截断日期时间值的时间部分。

答案 2 :(得分:1)

我只创建2个参数。一个用于Value,一个用于StartTime,并在我的查询中使用这些。

EndTime

答案 3 :(得分:0)

哟需要删除delivery_date字段的时间部分和GETDATE()值。

SELECT *
FROM  (tablename)
WHERE DATEADD(dd, DATEDIFF(dd, 0, delivery_date), 0) = DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)

答案 4 :(得分:0)

试试这个:

DECLARE @Today DATETIME
SET @Today= CONVERT(date, getdate())

select * from (tablename)
where delivery_date = @Today