How do you test if something is older than 3 months?

后端 未结 4 1017
再見小時候
再見小時候 2021-02-12 21:36

I have been having some trouble to select the rows of my table which has a date of 3 months prior of today. I tried using DATE(NOW() - INTERVAL 3 MONTH) in my where

相关标签:
4条回答
  • 2021-02-12 21:47

    try out DATEDIFF:

    SELECT 
        case 
            when DATEDIFF(month, '2005-12-31' , '2006-04-01 ') > 3
            then 'yes'
    
            else 'no'
    
        end
    

    Hope that helps,

    John

    0 讨论(0)
  • 2021-02-12 22:01

    Use dateadd().

    update [TCTdb].[dbo].[Stock]
    set [WareHouse] = 'old'
    where [ManufacturedDate] < dateadd(month,-3,getdate())
    

    I suggest dateadd() over datediff() because I think you're going to get unexpected results using datediff() with the month datepart.

    Consider that the following statements both return 3:

    select datediff(month, '1/1/2011','4/1/2011')
    select datediff(month, '1/1/2011','4/30/2011')
    

    Either works in this particular case... Just keep that behavior in mind.

    0 讨论(0)
  • 2021-02-12 22:01

    The DATEDIFF function should be helpful to you:

    http://msdn.microsoft.com/en-us/library/ms189794.aspx

    UPDATE[TCTdb].[dbo].[Stock]
        SET[Warehouse] = 'old'
        WHERE DATEDIFF(month, [ManufacturedDate], GETDATE()) > 3
    
    0 讨论(0)
  • 2021-02-12 22:06

    Your syntax appears to be wrong.

    That should be

    UPDATE[TCTdb].[dbo].[Stock]
        SET[Warehouse] = 'old'
    WHERE [ManufacturedDate] <= DATEADD(mm, -3, GETDATE())
    
    0 讨论(0)
提交回复
热议问题