如何仅从SQL Server DateTime数据类型返回日期

SELECT GETDATE()

返回: 2008-09-22 15:24:13.790

我希望没有时间部分的日期部分: 2008-09-22 00:00:00.000

我怎么弄到的?


SQL Server 2008及更高版本上,您应该CONVERT到目前为止:

SELECT CONVERT(date, getdate())

在旧版本上,您可以执行以下操作:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))

例如

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

给我

2008-09-22 00:00:00.000

优点:

  • 不需要varchar < - > datetime转换
  • 不需要考虑locale

  • SQLServer 2008现在有一个'date'数据类型,它只包含一个没有时间分量的日期。 任何使用SQL Server 2008及更高版本的人都可以执行以下操作:

    SELECT CONVERT(date, GETDATE())
    

    如果使用SQL 2008及以上版本:

    select cast(getdate() as date)
    
    链接地址: http://www.djcxy.com/p/2755.html

    上一篇: How to return only the Date from a SQL Server DateTime datatype

    下一篇: How do I perform an IF...THEN in an SQL SELECT?