【问题标题】:Update datetime value to 0 milliseconds, nanoseconds and microseconds .000将日期时间值更新为 0 毫秒、纳秒和微秒 .000
【发布时间】:2022-06-13 20:57:32
【问题描述】:

我希望将表中的所有日期时间值更新为以 .000 结尾。

以下是一些导致错误的示例:

2022-06-06 11:55:23.317 
2022-06-02 13:38:22.293 
2022-06-02 16:17:51.343 
2022-06-10 10:37:31.420

任何最后三位数字不是 000 的行都需要设置为 000,如下所示:

2022-06-06 11:55:23.000 
2022-06-02 13:38:22.000
2022-06-02 16:17:51.000 
2022-06-10 10:37:31.000

【问题讨论】:

  • 为什么不直接使用datetime2(0)?那么这个值只能精确到1秒。
  • causing errors -> 也许可以解决这个问题,而不是更新所有数据来解决它?

标签: sql sql-server tsql datetime


【解决方案1】:

正如 Larnu 在评论中提到的,您可以尝试:

UPDATE people SET timestamp=CAST(CAST(timestamp AS DATETIME2(0)) AS DATETIME)

【讨论】:

  • 我个人认为这里没有必要将CAST 回复到datetime。此外,这看起来确实有点令人困惑,因为 timestamp(在 SQL Server 中)是 rowversion 的(已弃用)同义词,它与日期和时间没有有关;希望OP的专栏称为timestamp
猜你喜欢
  • 2017-10-29
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
  • 2012-02-12
  • 2012-01-15
相关资源
最近更新 更多