【发布时间】:2020-05-21 18:59:38
【问题描述】:
我有年、月、日、小时、分钟、秒和毫秒的单独列。我需要将它们全部组合成一个日期时间戳。我可以制作一个日期值,但似乎无法制作一个有效的时间值。我在 Oracle 工作,下面有示例。我希望我的值看起来像 createtime 列。
这成功了:
to_timestamp(XT.MONTH1||'-'||XT.DAY1||'-'||XT.YEAR||' '|| xt.hour24||'.'||xt.minute||'.'||xt.second||'.'||xt.milliseconds,'MM-DD-YYYY HH24:MI:SS.FF')
【问题讨论】:
-
Oracle 中没有“时间价值”。 Oracle 有
date和timestamp数据类型,以及interval,但没有“时间”数据类型。在大多数情况下,无论如何您都不需要单独使用它 - 您要么需要date(它总是包括一天中的时间,尽管它的名称),或者 - 不太常见 -interval day to second。 -
将它们附加到一个选择中,然后用 to_timestamp() 调用包装它
-
在您的示例中,列的顺序与您的日期格式不匹配。您以 xt.month 开头,但格式以
DD开头。 -
thatjeffsmith 你是真正的“thatjeffsmith”吗?我一直在使用你的博客!
-
@hadoo - 是的,他是。他在这个网站和 OTN 上的时间也非常慷慨。