【问题标题】:how to get current/Todays date data in sql server如何在 sql server 中获取当前/今天的日期数据
【发布时间】:2015-05-06 12:33:42
【问题描述】:

如何编写查询以获取SQL server 中今天的日期数据?

select * from tbl_name where date = <Todays_date>

【问题讨论】:

    标签: sql sql-server current-time


    【解决方案1】:

    正确答案取决于您的datecolumn 的确切类型。假设它是Date 类型:

    select * from tbl_name 
    where datecolumn = cast(getdate() as Date)
    

    如果是DateTime:

    select * from tbl_name 
    where cast(datecolumn as Date) = cast(getdate() as Date)
    

    【讨论】:

      【解决方案2】:

      似乎 Mitch Wheat 的答案不是 sargable,虽然我不确定这是不是真的。

      请注意:LHS 上的 DATEDIFF()(或其他计算)是不可分割的,而 Cast(x to Date) 是不可分割的。

      SELECT * 
      FROM tbl_name 
      WHERE date >= cast(getdate() as date)
      and date < cast(getdate()+1 as date)
      

      【讨论】:

      • 实际上,更高版本的 sql server (2K8)+ 似乎是 'cast-to-date' s-argable 感知的。我曾经认为这会排除索引的使用,然后我对其进行了测试。
      • @MitchWheat 我很高兴听到这个消息。我有疑问并开始浏览。从我的链接可以看出,它是去年写的。作者没有提到他使用的是哪个版本
      • 请注意:LHS 上的 datediff()(或其他计算)不是 Sargable,而 Cast(x to Date) 是。
      【解决方案3】:
      select * from tbl_name where date = cast(getdate() as Date)
      

      CASThttp://msdn.microsoft.com/en-us/library/ms187928.aspxGETDATE()https://msdn.microsoft.com/en-IN/library/ms188383.aspx

      【讨论】:

        【解决方案4】:
        select * from tbl_name where date(column_name) = CURDATE();
        

        现在你可以得到今天插入的行

        【讨论】:

        • 嗨,伊尔沙德。问题是在 SQL Server 中寻求解决方案。您发布的 SQL 语句不会在 SQL Server 上运行。
        猜你喜欢
        • 1970-01-01
        • 2021-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        相关资源
        最近更新 更多