How to compare only date part when delivery date is today

后端 未结 5 593
既然无缘
既然无缘 2021-02-05 08:59

I\'m trying to create a report that gets records from a SQL Server database where the delivery date is today.

I\'ve tried

select * from (tablename)
where         


        
相关标签:
5条回答
  • 2021-02-05 09:11

    If delivery_date is always midnight (00:00:00.000), then compare it like this:

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

    Using datediff like this is a quick way to truncate the time part of a datetime value.

    0 讨论(0)
  • 2021-02-05 09:18

    Try this:

    DECLARE @Today DATETIME
    SET @Today= CONVERT(date, getdate())
    
    select * from (tablename)
    where delivery_date = @Today
    
    0 讨论(0)
  • 2021-02-05 09:32

    I'd just create 2 params. One for StartTime and one for EndTime and use those in my query.

    DECLARE @StartTime DATETIME,
            @EndTime DATETIME 
    
    SET @StartTime = DATEDIFF(d,0,GETDATE())
    SET @EndTime = DATEADD(d,1,@StartTime)
    
    SELECT  *
    FROM    [tablename]
    WHERE   delivery_date >= @StartTime
            AND delivery_date < @EndTime
    
    0 讨论(0)
  • 2021-02-05 09:32

    Yo need to remove the time part of the delivery_date field AND the GETDATE() value.

    SELECT *
    FROM  (tablename)
    WHERE DATEADD(dd, DATEDIFF(dd, 0, delivery_date), 0) = DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)
    
    0 讨论(0)
  • 2021-02-05 09:33

    You can try a query like below

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

    Also if all delivery dates have time part like 00:00:00.000 for sure then

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

    would work as good.

    0 讨论(0)
提交回复
热议问题