Oracle Date: 字符串和日期转换
转换格式:Link
YYYY 完整年 YYY 完整年后3位数 YY 完整年后2位数 Y 完整年最1位数 MONTH 月_全称 MM 当年第几月 DDD 当年第几天 DD 当月第几天 DAY 星期几_全称 D 星期几_每周从礼拜天开始_1_7 HH 当前小时_12小时制 HH24 当前小时_24小时制 MI 分钟 SS 秒 Q 季度_1_4 WW 年中的第几个星期 W 月中的第几个星期
DemoSql
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
SELECT '2022-02-01' ItemDate , to_char(to_date('2022-02-01','yyyy-mm-dd'),'yyyy') yyyy , to_char(to_date('2022-02-01','yyyy-mm-dd'),'yyy') 年后3位数 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'yy') 年后2位数 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'y') 年后1位数 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'month') 月_全称 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'mm') 当年第几月 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'ddd') 当年第几天 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'dd') 当月第几天 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'day') 星期几_全称 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'d') 星期几_每周从礼拜天开始_1_7 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'hh') 当前小时_12小时制 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'hh24') 当前小时_24小时制 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'mi') 分钟 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'ss') 秒 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'q') 季度_1_4 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'ww') 年中的第几个星期 , to_char(to_date('2022-02-01','yyyy-mm-dd'),'w') 月中的第几个星期 FROM DUAL;
TO_DATE(str, format): 字符串转换为日期
/** * str: 日期字符串 * format: 日期字符串的时间格式,需要与str匹配,或者会报错 */ SELECT to_date('2022-02-01','yyyy-mm-dd') FROM DUAL; -- ok SELECT to_date('2022-02-01','yyyy-mm-dd HH24:MI:SS') FROM DUAL; -- ok SELECT to_date('2022-02-01 13:14:00','yyyy-mm-dd') FROM DUAL; -- error-ORA-01830: 日期格式图片在转换整个输入字符串之前结束
TO_DATE(str, format): 字符串转换为日期
/** * date: 日期 * format: 日期的字符串格式,默认格式为 'DD-MONTH-YY',需要与date匹配,或者会报错 */ SELECT TO_CHAR(SYSDATE) FROM DUAL; -- ok SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM DUAL; -- ok SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd HH24:MI:SS') FROM DUAL; -- ok SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd HH24:MI:SS1') FROM DUAL; --error-ORA-01821: 日期格式无法识别