如何获取使用MSSQL GetDate()的日期?

这个问题在这里已经有了答案:

  • 如何仅返回来自SQL Server DateTime数据类型的日期37个答案

  • 对SQL Server有轻微偏见

  • 在SQL Server中删除部分日期时间的最佳方法
  • SQL Server中从日期+时间获取日期的最有效方法?
  • 概要

    DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
    

    尽管SQL Server 2008具有date类型。 所以就用吧

    CAST(GETDATE() AS DATE)
    

    编辑:添加一天,比较“零”前一天

    DATEADD(day, DATEDIFF(day, -1, GETDATE()), 0)
    

    来自cyberkiwi:

    不涉及2个功能的替代方案是(+1可以位于括号内或位于括号内)。

    DATEDIFF(DAY, 0, GETDATE() +1)
    

    DateDiff返回一个数字,但对于所有目的而言,除了直接将其转换为VARCHAR外,这将作为日期使用该表达式的日期起作用 - 在这种情况下,您将直接在GETDATE()上使用CONVERT方法,例如

    convert(varchar, GETDATE() +1, 102)
    

    对于SQL Server 2008,最好的和索引友好的方式是

    DELETE from Table WHERE Date > CAST(GETDATE() as DATE);
    

    对于以前的SQL Server版本,日期数学将比转换为varchar的速度更快。 由于区域设置的原因,即使转换为varchar也会导致错误的结果。

    DELETE from Table WHERE Date > DATEDIFF(d, 0, GETDATE());
    

    注:这是不必要的包裹DATEDIFF与另一DATEADD


    它是数据库特定的。 您尚未指定您正在使用的数据库引擎。

    例如在PostgreSQL中你投的(myvalue作为日期)。

    链接地址: http://www.djcxy.com/p/94369.html

    上一篇: How do I get just the date when using MSSQL GetDate()?

    下一篇: How to only keep the time portion of a datetime value (SQL Server)?