如何将日期转换为YYYYMMDD?

时间:2016-05-09 15:04:10

标签: sql oracle date

我有两个表有两种不同的日期格式,我需要比较它们。我正在尝试转换字段Q_RATE_DATE;如何将其从'27-JUN-12'更改为20120627

我试过了:

TO_DATE(Q_RATE_DATE, 'DD-MON-YY', 'YYYYMMDD') 

没有运气,我做错了什么?

2 个答案:

答案 0 :(得分:6)

以文字形式呈现:

TO_CHAR(DATE_FIELD, 'YYYYMMDD')

要重新转换该文字:

TO_DATE(TO_CHAR(DATE_FIELD, 'YYYYMMDD'),'YYYYMMDD') 

根据Alex Poole的优秀评论进行编辑。如果您发现一个日期存储为字符串而另一个日期是日期,则可能需要混合使用上述两个查询。

将文本字符串转换为日期:

TO_DATE(STR_DATE_FIELD, 'YYYYMMDD')

答案 1 :(得分:0)

实际上在我看来,BOTH列是字符数据类型 - 否则说“格式”是没有意义的。在这种情况下,正确的解决方案是

to_char(to_date(Q_RATE_DATE, 'dd-mon-yy'), 'yyyymmdd')

(好吧 - 实际上正确的解决方案是将日期存储在DATE数据类型中,但OP完全有可能无法控制它。)