【问题标题】:List rows after specific date列出特定日期之后的行
【发布时间】:2012-03-20 22:03:35
【问题描述】:

我的数据库中有一个名为“dob”的日期时间类型的列。如何在 SQL Server 2005 中选择特定 DoB 之后的所有行?

【问题讨论】:

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


    【解决方案1】:

    简单地说:

    SELECT * 
    FROM TABLE_NAME
    WHERE
    dob > '1/21/2012'
    

    其中 1/21/2012 是日期,您需要包括该日期在内的所有数据。

    SELECT * 
    FROM TABLE_NAME
    WHERE
    dob BETWEEN '1/21/2012' AND '2/22/2012'
    

    如果选择两个日期之间的时间,请使用 between

    【讨论】:

    • 关于日期格式的适用规则是什么?我用“1/12/2012 13:14:33.000”和“1-12-2012 13:14:33.000”进行了测试,两者都有效。
    • 该示例具有误导性。 12 不是一个月!这是一天,它是美国格式。它采用以下格式:“mm/dd/yyyy”示例SELECT * FROM TABLE_NAME WHERE dob > '1/13/2012。现在很清楚 13 不是月份。
    • @Daniel 如有疑问,最好将转换指定为WHERE dob >= Convert(datetime, '2019-12-15' )
    【解决方案2】:

    假设您想从名为Table_One 的表中获取所有记录,该表的日期时间列名为date_value,这些记录在过去六个月内发生...

    CREATE TABLE (
      date_value DATETIME
    ) 
    
    SELCECT *
    FROM Table_One
    WHERE date_value > DATEADD(month, -6, getdate());
    

    这提供了一个更动态的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多