在sql server中将datetime随时间转换为datetime而没有时间?

时间:2011-11-24 22:20:35

标签: sql-server-2008 tsql

  

可能重复:
  Best approach to remove time part of datetime in SQL Server

假设表列MyDate是datetime。然后可以将以下数据保存到db:

2011-11-24 12:43:27.723  
2011-11-24 12

我希望毫不犹豫地将2011-11-24 12:43:27.723转换为2011-11-24,我尝试了以下方式:

CONVERT(DATETIME, CONVERT(INT, MyDate))

有趣的是:2011-11-24 12:43:27.723转换为2011-11-25而不是2011-11-24

如何解决?

2 个答案:

答案 0 :(得分:4)

使用自Sql Server 2008以来可用的内置date类型:

SELECT CAST('2011-11-24 12:43:27.723' as Date)

输出:

2011-11-24

答案 1 :(得分:0)

虽然问题是关于SQL 2008,如果您使用的是早期版本的SQL Server,我倾向于使用这种方法:

CAST(FLOOR(CAST(CAST('2011-11-24 12:43:27.273' AS DATETIME) AS FLOAT)) AS DATETIME)

哪个输出:

2011-11-24 00:00:00.000