[英]Oracle: Convert Date Time to Specific format
全能的Stackoverflow下午好!
我并不过分熟悉Oracle中的SQL,但需要获取日期/时间值并将其转换为与另一个应用程序的特定格式匹配的字符串。 我发现很多类似的场景,但那些与Oracle文档混合的场景并没有让我得到我需要的东西。
输入格式如下:2014年8月6日下午3:05:21
我需要输入到其他应用程序的格式如下:YYYYMMDDhhmmssuu
uu是微秒(我想在Oracle中的小数秒)。
我认为会起作用的是:
to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF')
我认为只有输入格式与输出格式匹配才有效。
如果您能提供帮助,我将不胜感激!
如果您从DATE类型转换为输出格式使用TO_CHAR
函数:
TO_CHAR(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF')
如果您从VARCHAR2类型转换,则使用这两个函数:
TO_CHAR(TO_DATE(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT, 'MM/DD/YYYY HH:MI:SS'),'YYYYMMDDHH24MISSFF')
TO_DATE
- 从VARCHAR2类型(输入格式)转换为DATE类型; TO_CHAR
- 从DATE类型到VARCHAR2类型(输出格式)
从dual中选择to_char(systimestamp,'yyyymmddhh24missFF');
您需要的Oracle功能是TO_CHAR。
TO_CHAR(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT, 'YYYYMMDDHH24MISSFF')
由于你的格式正在寻找一个字符串变量,我不确定它是否需要一个to_date。
我的建议是尝试结合使用to_char()和to_date()函数
to_char(to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'DD/MM/YYYY HH:MM:SS),'YYYYMMDDHH24MISSFF')
要么
to_date(to_char(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF'),''DD/MM/YYYY HH:MM:SS')
是我会尝试的功能。 Oracle对于使用日期/字符串的输入非常挑剔,我对Oracle也相对较新,时间/日期通常令人沮丧
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.