繁体   English   中英

Oracle:将日期时间转换为特定格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM