select to_char( to_date (dt, 'yy-mm-dd'), 'yyyymmdd') from ...
例子:
with my_table ( dt ) as ( select '16-09-15' from dual)
-- this creates a test table my_table with column dt and value as shown
select dt,
to_char( to_date (dt, 'yy-mm-dd'), 'yyyymmdd') as dt_skey
from my_table
;
DT DT_SKEY
-------- --------
16-09-15 20160915
您也可以直接操作输入字符串,但我强烈建议您不要这样做。在您尝试将数据推送到应用程序之前,将数据转换为日期并返回将捕获数据中的无效“日期”。此外,如果输入字符串不一致(例如,如果16-9-15和16-09-15一起被允许),字符串操作将变得复杂。 编辑:在对他最初的问题的评论中,评论指出dt在oracle中已经是日期格式了。在这种情况下,它不应该被包裹在里面 to_date() -那会导致错误。相反,解决方案要简单得多,所需要的只是 select to_char(dt, 'yyyymmdd') from ...
1条答案
按热度按时间bhmjp9jg1#
假设您的输入数据应该是yy-mm-dd(因此16-09-15表示2016年,09月,15日),您可能需要这样的转换:
例子:
您也可以直接操作输入字符串,但我强烈建议您不要这样做。在您尝试将数据推送到应用程序之前,将数据转换为日期并返回将捕获数据中的无效“日期”。此外,如果输入字符串不一致(例如,如果16-9-15和16-09-15一起被允许),字符串操作将变得复杂。
编辑:在对他最初的问题的评论中,评论指出dt在oracle中已经是日期格式了。在这种情况下,它不应该被包裹在里面
to_date()
-那会导致错误。相反,解决方案要简单得多,所需要的只是select to_char(dt, 'yyyymmdd') from ...