我正在尝试将Col_1,DATE ( DD/MM/YY 00:00:00)
和Col_2,TIME (hh24:mi:ss)
合并到一个列中。
我研究了几个代码并试了几个(adddate()
,To_Date()
),但都没有。
我想知道在 - >
一个。 Col_1为DATE
,COL_2为TIME
B中。 Col_1为DATE
,COL_2为CHAR
答案 0 :(得分:0)
DATE数据类型没有特定格式,但您可以使用to_char()函数逐列控制打印格式,也可以通过更改NLS_DATE_FORMAT设置来更改整个会话的默认显示格式像这样:
ALTER SESSION NLS_DATE_FORMAT = 'DD/MM/YY HH24:MI:SS';
现在,如果Col_1已经是日期列,而COL_2是HH24:MI:SS格式的时间字符串表示,您可以将COL_2转换为区间数据类型并将其添加到Col_1,如下所示:
Col_1 + cast('0 '||COL_2 as interval day to second)
将时间字符串转换为间隔时,您需要前导“0”来表示间隔的日期部分。在这种情况下零日。
如果您没有像上面那样更改NLS_DATE_FORMAT字符串,那么您可以输出所需格式的结果,如下所示:
to_char(Col_1 + cast('0 '||COL_2 as interval day to second), 'DD/MM/YY HH24:MI:SS')
但是,最好将结果保留在原始日期类型中以便以后处理。