我有两个表有两种不同的日期格式,我需要比较它们。我正在尝试转换字段Q_RATE_DATE;如何将其从'27-JUN-12'
更改为20120627
?
我试过了:
TO_DATE(Q_RATE_DATE, 'DD-MON-YY', 'YYYYMMDD')
没有运气,我做错了什么?
答案 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完全有可能无法控制它。)