将datetime设置为随机尾随纳秒为零

时间:2017-04-21 13:32:45

标签: sql sql-server stored-procedures

我在表格中有多个日期,日期格式如下:

2016-01-03 12:04:00.0123123

我需要更新整个表以将所有尾随的mili和纳秒更新为零

所以上述日期应该成为:

2016-01-03 12:04:00.0000000

是否有人可以帮助我使用此更新脚本?

事先提前

1 个答案:

答案 0 :(得分:0)

我认为对值进行解码和编码,同时省略毫秒应该可以解决问题:

UPDATE table
  SET field = DATETIMEFROMPARTS(
    DATEPART(year, field),
    DATEPART(month, field),
    DATEPART(day, field),
    DATEPART(hour, field),
    DATEPART(minute, field),
    DATEPART(second, field),
    0);

使用DATEPART()完成解码。对于编码使用DATETIMEFROMPARTS() 如果您的字段属于DATETIME2类型,则可以使用DATETIME2FROMPARTS()