|
|
1
1
Oracle没有时间数据类型。你正在转换为一个日期,所以你所看到的是意料之中的; from the documentation (表示日期,但也适用于时间戳):
由于您只提供了时间部分,因此默认为当月的第一天,即2023-11-01。 然后,您的客户端或应用程序将时间戳值显示为字符串,根据其设置或NLS_timestamp_FORMAT会话参数进行格式化。 顺便说一句,在你的格式掩码中包括冒号是没有意义的,因为你的原始字符串没有冒号。默认情况下,甲骨文在这类事情上是宽容的,但它看起来仍然是错误的。 如果您只想查看时间部分,则将其转换回字符串,只需使用以下组件:
根据您所拥有的值的范围,您也可以将其作为字符串进行操作,以插入分隔符冒号,但您可能需要先用零填充。 您可以转换为间隔数据类型,这可能是比字符串(这可能是最糟糕的选项)更好的存储值的方式,但比日期或时间戳更难使用和格式化。不过,如果您计划将此时间值添加到另一个日期时间,这是很有用的——例如,如果您还将日期作为字符串存储在另一列中(这是另一种糟糕的做法)。 |