【问题标题】:How do I get all records where date is 6 months greater than today's date, using Microsoft SQL Server 2008?如何使用 Microsoft SQL Server 2008 获取日期比今天大 6 个月的所有记录?
【发布时间】:2016-02-11 12:03:39
【问题描述】:

我有一个包含 lastDelivery 日期字段的表,我想检索比今天日期早 6 个月或更长时间的所有记录,我该怎么做?

【问题讨论】:

  • where lastDelivery > dateadd(month, 6, getdate())
  • 编辑了我的问题 - 这不起作用,我的意思是比今天的日期早 6 个月或更长时间。

标签: sql sql-server sql-server-2008


【解决方案1】:

试试这个:

SELECT * FROM Table
WHERE lastdelivery <= dateadd(month, -6, getdate())

【讨论】:

    【解决方案2】:

    使用DATEADD

    查询

    select * from your_table_name
    where lastDelivery <= dateadd(month, -6, getdate());
    

    【讨论】:

      【解决方案3】:
                  DECLARE @subscriptions TABLE
                  (
                      OrderId int,
                      OrderName varchar(255),
                      lastDelivery date default getdate()
                  )
      
                  INSERT INTO @subscriptions (OrderName, lastDelivery) 
                  VALUES 
                  ( 'Allen', '2015-05-20'),
                  ( 'Bob', '2015-06-20'),
                  ( 'Craig', '2015-07-20'),
                  ( 'David', '2015-08-20'),
                  ( 'Edward', '2015-09-20'),
                  ( 'Frank', '2015-10-20'),
                  ( 'George', '2015-11-20'),
                  ( 'Harry', '2015-12-20')
      
                  SELECT OrderName FROM @subscriptions
                  WHERE lastDelivery <= DATEADD(MONTH, -6, GETDATE())
      

      【讨论】:

        【解决方案4】:

        我尝试了上面的一些方法,它们对我不起作用,但这有效:

        SELECT * FROM `table_Columns` WHERE `date` <= '2020-01-13 04:40:51'
        

        请注意,我的日期手动设置为 6 个月前。

        【讨论】:

          猜你喜欢
          • 2018-12-19
          • 2016-03-28
          • 2014-08-12
          • 2015-10-25
          • 1970-01-01
          • 1970-01-01
          • 2021-12-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多