我有年、月、日、时、分、秒和毫秒的单独列。我需要把它们组合成一个日期时间戳。我可以生成日期值,但似乎无法生成有效的时间值。我在甲骨文工作,我有下面的例子。我希望我的值看起来像createtime列。
这就成功了:
to_timestamp(XT.MONTH1||'-'||XT.DAY1||'-'||XT.YEAR||' '|| xt.hour24||'.'||xt.minute||'.'||xt.second||'.'||xt.milliseconds,'MM-DD-YYYY HH24:MI:SS.FF')
1条答案
按热度按时间s1ag04yj1#
这很简单,但不漂亮。从数据类型转换列
NUMBER
至VARCHAR2
用前导零填充,使用fm
抑制任何空格+
或者-
:接下来,将转换的列与
||
运算符获取单个长字符串:这个长字符串现在可以转换为数据类型
DATE
,或者,在你的情况下TIMESTAMP
因为你有毫秒。您需要指定使用的日期格式,f.i.“yyyymmdd…”完整的示例如下所示:
编辑:
填充模式修改器
fm
抑制正数的前导空格(为-
负数的符号)。日期的所有部分都是正数,所以字符串中有很多空格。文档在格式模型修改器下有点隐藏。
想一想,不妨保留空格,调整格式模型: