MySQL/Oracle 的字符串转日期、日期转字符串
目录
- MySQL、Oracle 的字符串、日期互转
- 1 字符串转日期
- 1.1 MySQL 的 字符串转日期:STR_TO_DATE(str, format)
- 1.2 Oracle 的 字符串转日期:TO_DATE(string, format)
- 2 日期转字符串
- 2.1 MySQL 的 日期转字符串:DATE_FORMAT(date, format)
- 2.2 Oracle 的 日期转字符串:TO_CHAR(date, format)
MySQL、Oracle 的字符串、日期互转
MySQL Oracle 字符串转日期 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-10 SELECT STR_TO_DATE('2024-01-10 10', '%Y-%m-%d') FROM TEST1; -- 返回:2024-01-10 SELECT STR_TO_DATE('2024-01-10 10:10', '%Y-%m-%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 10:10:00 SELECT STR_TO_DATE('2024/01/10', '%Y/%m/%d') FROM TEST1; -- 返回:2024-01-10 SELECT STR_TO_DATE('2024/01/10', '%Y/%m/%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 00:00:00 SELECT STR_TO_DATE('2024-01', '%Y-%m') FROM TEST1; -- 返回:NULL SELECT 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:00 SELECT TO_DATE('2024-01-10 10:10', 'YYYY-MM-DD hh24:MI:SS') FROM TEST1; -- 返回:2024-01-10 10:10:00 SELECT TO_DATE('2024/01/10', 'YYYY/MM/DD') FROM TEST1; -- 返回:2024-01-10 00:00:00 SELECT TO_DATE('2024/01/10', 'YYYY/MM/DD hh24:MI:SS') FROM TEST1; -- 返回:2024-01-10 00:00:00 SELECT 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-10 SELECT DATE_FORMAT('2024-01-10 10:10:10', '%Y-%m-%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 10:10:10 SELECT DATE_FORMAT('2024/01/10', '%Y/%m/%d') FROM TEST1; -- 返回:2024/01/10 SELECT DATE_FORMAT('2024/01/10', '%Y/%m/%d %H:%i:%s') FROM TEST1; -- 返回:2024/01/10 00:00:00 SELECT DATE_FORMAT('2024-01', '%Y-%m') FROM TEST1; -- 返回:NULL SELECT 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-10 SELECT 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:00 SELECT TO_CHAR(TO_DATE('2024/01/10', 'YYYY/MM/DD'), 'YYYY/MM/DD') FROM TEST1; -- 返回:2024/01/10 SELECT TO_CHAR(TO_DATE('2024/01/10', 'YYYY/MM/DD'), 'YYYY/MM/DD hh24:MI:SS') FROM TEST1; -- 返回:2024/01/10 00:00:00 SELECT TO_CHAR(TO_DATE('2024', 'YYYY'), 'YYYY') FROM TEST1; -- 返回:2024注意事项:要转换的日期必须是日期类型,返回的字符串由日期格式控制。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
