当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?


当前回答

我猜他想要根绳子。

select convert(varchar(10), '2011-02-25 21:17:33.933', 120)

这里的120告诉转换函数,我们以以下格式传递输入日期:yyyy-mm-dd hh:mi:ss。

其他回答

有点晚了,但是可以使用ODBC的“curdate”函数(尖括号中的“fn”是ODBC函数转义序列)。

SELECT {fn curdate()} 

输出:2013-02-01

2008年旧版本:

Select dateadd (day, datediff (day, 0, getdate ()), 0)

我会使用DATEFROMPARTS函数。这很简单,你不需要选角。以这个查询为例:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())) as myNewDate

将返回

2021-01-21

好的部分是你也可以创建你自己的日期,例如你想要一个月的第一天作为日期,那么你可以像下面这样使用:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) as myNewDate

结果将是:

2021-01-01

虽然已经太晚了,但我还是坚持了下来

declare @vCurrentDate date=getutcdate()

select @vCurrentDate

当数据类型为date时,小时将被截断

CAST(
        FLOOR( 
             CAST( GETDATE() AS FLOAT ) 
        )

AS DATETIME
)

http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm