我在数据库中有一个日期(存储为VARCHAR2),格式为:
20090123_163842.865
yyyyMMdd_hhmmss.ttt
我想做一个SQL语句来获得:
23/01/2009 16:38:42,865
dd/MM/yyyy hh:mm:ss,ttt
我的目标是手动将其作为可识别的日期添加到Excel中(我知道数据可以从数据库导出,也可以导入到Excel中,但我想手动完成)。
我的SQL语句应该是怎样的?
我试着通过以下方式来实现:
select TO_TIMESTAMP(my_time_utc, 'YYYYMMDD_HH24MISS.FF3') from myTable
但我只能得到:
2009-01-23 16:38:42.865
谢谢
发布于 2012-10-29 19:33:33
令我惊讶的是,有那么多人把这些操作搞糊涂了。
首先,您需要将varchar 'fake date‘转换为一个真实的日期:为此使用to_date
。然后,您需要将日期转换为varchar以进行表示:为此,请使用to_char
。
select to_char(to_date(column, 'yyyyMMdd_hhmmss.ttt'), 'dd/MM/yyyy hh:mm:ss,ttt')
from your_table;
应该做你想做的事。
发布于 2012-10-29 19:37:51
当从数据库中检索日期字段并由oracle向您显示时,将执行强制转换隐式转换。此转换的格式模式是在oracle配置中设置的。Quoting oracle doc
Oracle日期值的默认日期格式派生自NLS_DATE_FORMAT和NLS_DATE_LANGUAGE初始化参数
https://stackoverflow.com/questions/13120766
复制相似问题