目录
MySQL、Oracle 的字符串、日期互转
MySQLOracle字符串转日期STR_TO_DATE(str, format)TO_DATE(string, format)日期转字符串DATE_FORMAT(date, format)TO_CHAR(date, format)
1 字符串转日期
1.1 MySQL 的 字符串转日期:STR_TO_DATE(str, format)
str: 要转换的字符串
format: 日期的格式,‘%Y-%m-%d %H:%i:%s’,‘%Y/%m/%d %H:%i:%s’
日期格式设置 - 或 /,返回的日期都是 -,
最基本的日期格式:‘%Y-%m-%d’、‘%Y/%m/%d’
参考案例:
SELECT STR_TO_DATE('2024-01-10','%Y-%m-%d')FROM TEST1;-- 返回:2024-01-10SELECT STR_TO_DATE('2024-01-10 10','%Y-%m-%d')FROM TEST1;-- 返回:2024-01-10SELECT STR_TO_DATE('2024-01-10 10:10','%Y-%m-%d %H:%i:%s')FROM TEST1;-- 返回:2024-01-10 10:10:00SELECT STR_TO_DATE('2024/01/10','%Y/%m/%d')FROM TEST1;-- 返回:2024-01-10SELECT STR_TO_DATE('2024/01/10','%Y/%m/%d %H:%i:%s')FROM TEST1;-- 返回:2024-01-10 00:00:00SELECT STR_TO_DATE('2024-01','%Y-%m')FROM TEST1;-- 返回:NULLSELECT STR_TO_DATE('2024-01-10','%Y/%m/%d')FROM TEST1;-- 返回:NULL
注意事项:
(1)字符串的日期是 - 或 /,日期格式要设置成一样的,否则会返回空。
(2)必须精确到日,如果日期格式只有年月,则会返回空。
(3)时分秒 是否返回由日期格式控制。
1.2 Oracle 的 字符串转日期:TO_DATE(string, format)
string: 要转换的字符串
format: 日期的格式,
(‘YYYY-MM-DD hh24:MI:SS’、‘YYYY/MM/DD hh24:MI:SS’)
日期格式设置 - 或 /,返回的日期都是 -
参考案例:
SELECT TO_DATE('2024-01-10','YYYY-MM-DD')FROM TEST1;-- 返回:2024-01-10 00:00:00SELECT TO_DATE('2024-01-10 10:10','YYYY-MM-DD hh24:MI:SS')FROM TEST1;-- 返回:2024-01-10 10:10:00SELECT TO_DATE('2024/01/10','YYYY/MM/DD')FROM TEST1;-- 返回:2024-01-10 00:00:00SELECT TO_DATE('2024/01/10','YYYY/MM/DD hh24:MI:SS')FROM TEST1;-- 返回:2024-01-10 00:00:00SELECT TO_DATE('2024','YYYY')FROM TEST1;-- 返回:2024-01-01 00:00:00
注意事项:不管日期格式是否设置到秒,返回的日期都精确到秒。
字符串和日期格式最好匹配一致,日期格式不精确到日也会返回数据,对应的值会是默认的。
2 日期转字符串
2.1 MySQL 的 日期转字符串:DATE_FORMAT(date, format)
date: 要转换的日期
format: 日期的格式,‘%Y-%m-%d %H:%i:%s’,‘%Y/%m/%d %H:%i:%s’
日期格式设置 - 或 /,返回的字符串则是 - 或 /,
最基本的日期格式:‘%Y-%m-%d’、‘%Y/%m/%d’
参考案例:
SELECT DATE_FORMAT('2024-01-10','%Y-%m-%d')FROM TEST1;-- 返回:2024-01-10SELECT DATE_FORMAT('2024-01-10 10:10:10','%Y-%m-%d %H:%i:%s')FROM TEST1;-- 返回:2024-01-10 10:10:10SELECT DATE_FORMAT('2024/01/10','%Y/%m/%d')FROM TEST1;-- 返回:2024/01/10SELECT DATE_FORMAT('2024/01/10','%Y/%m/%d %H:%i:%s')FROM TEST1;-- 返回:2024/01/10 00:00:00SELECT DATE_FORMAT('2024-01','%Y-%m')FROM TEST1;-- 返回:NULLSELECT DATE_FORMAT('2024-01-10','%Y/%m/%d')FROM TEST1;-- 返回:2024/01/10
注意事项:必须精确到日,如果日期格式只有年月,则会返回空。返回的字符串由日期格式控制。
2.2 Oracle 的 日期转字符串:TO_CHAR(date, format)
date: 要转换的日期
format: 日期的格式,
(‘YYYY-MM-DD hh24:MI:SS’、‘YYYY/MM/DD hh24:MI:SS’)
参考案例:
SELECT TO_CHAR(TO_DATE('2024-01-10','YYYY-MM-DD'),'YYYY-MM-DD')FROM TEST1;-- 返回:2024-01-10SELECT TO_CHAR(TO_DATE('2024-01-10 10:10','YYYY-MM-DD hh24:MI'),'YYYY-MM-DD hh24:MI:SS')FROM TEST1;-- 返回:2024-01-10 10:10:00SELECT TO_CHAR(TO_DATE('2024/01/10','YYYY/MM/DD'),'YYYY/MM/DD')FROM TEST1;-- 返回:2024/01/10SELECT TO_CHAR(TO_DATE('2024/01/10','YYYY/MM/DD'),'YYYY/MM/DD hh24:MI:SS')FROM TEST1;-- 返回:2024/01/10 00:00:00SELECT TO_CHAR(TO_DATE('2024','YYYY'),'YYYY')FROM TEST1;-- 返回:2024
注意事项:要转换的日期必须是日期类型,返回的字符串由日期格式控制。
版权归原作者 2019一路前行 所有, 如有侵权,请联系我们删除。