我正在寻找具有一年以上历史的记录,但不幸的是,它们仅包含日期字符串,例如JAN2019
。我需要一些如何将其转换为2019年1月1日的DATETIME
才能获得少于SYSDATE-365
的记录。
我可以使用SUBSTR
来获取月份和年份,但是我不知道如何将月份的字符串值转换为数字值以将其转换或转换为日期。
答案 0 :(得分:3)
TO_DATE
会有所帮助。
SQL> alter session set nls_date_language = english;
Session altered.
SQL> alter session set nls_date_Format = 'dd/mm/yyyy';
Session altered.
SQL> select to_date('JAN2019', 'monyyyy') from dual;
TO_DATE('J
----------
01/01/2019
SQL>
(您很可能不需要alter session
命令;我需要,因为我的数据库使用克罗地亚语并使用不同的日期格式,所以我只是试图使其看起来更接近于您使用)。
答案 1 :(得分:0)
SELECT TO_DATE(('01'||'JAN2019'),'dd/mm/yyyy') AS new_date_format FROM table_name;
备注:
您可以将'JAN2019'
更改为column_name