MS SQL Server:更改smalldatetime列的时间

时间:2018-07-17 10:14:48

标签: sql sql-server

我有一个带有SMALLDATETIME列的表和一些时间错误的记录。例如:

2018-07-17 11:06:00

正确的时间是00:00:00,因此,对于所有这些条目,我想将时间更改为该值(2018-07-17 00:00:00)。

在表中,大部分记录具有正确的时间。

实现此目标的正确方法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您不想浪费时间,可以使用cast( as date)删除时间分量并将其设置为00:00:00

update t 
     set dt = cast(dt as date);

答案 1 :(得分:0)

DECLARE @datetime SMALLDATETIME ='2018-07-17 11:06:00'

SELECT CONVERT(DATETIME, CONVERT(DATE, @datetime))

是这样的:

UPDATE MY_TABLE
SET MY_COLUMN = CONVERT(SMALLDATETIME, CONVERT(DATE, MY_COLUMN))