【发布时间】:2021-05-20 02:11:38
【问题描述】:
我在 SQL Server 上有这个查询,这个查询的目标是设置毫秒为 000,例如,
在此查询之前:2017-06-01 11:53:00.123
之后:2017-06-01 11:53:00.000
UPDATE table1
SET ValidFrom = CONVERT(DATETIME, CONVERT(CHAR(19), ValidFrom, 126))
WHERE ValidFrom IS NOT NULL;
ValidFrom 是数据库上的一个列,它是一个日期时间。
Oracle 上有一个转换命令,但它不适用于日期时间。
如何将其翻译到 Oracle?
【问题讨论】:
-
您需要解释该表达式的作用——不是每个了解 Oracle 的人都知道
convert()做什么或 126 应该做什么。 Oracle 中也没有datetime数据类型。您可能正在寻找timestamp -
1º 这是一个删除毫秒的查询,此查询之前:2017-06-01 11:53:00.123 之后:2017-06-01 11:53:00.000。 2º 126 是 convert 方法中的可选参数,表示它必须转换的日期时间类型 (yyyy-mm-ddThh:mi:ss.mmm)
-
@CMorillo 为什么要删除毫秒?
-
名称
ValidFrom通常用于临时表(与临时表无关,顺便说一句)- 如果这是一个临时表,那么您不应该修改ValidFrom或ValidTo完全(事实上我认为你甚至可以因为SQL Server会阻止写入)。 -
您使用的是什么版本的 Oracle 数据库?