MySQL/Oracle 的字符串转日期、日期转字符串

MySQL/Oracle 的字符串转日期、日期转字符串

码农世界 2024-06-21 后端 91 次浏览 0个评论

目录

    • 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 的字符串、日期互转

          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-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
          

          注意事项:要转换的日期必须是日期类型,返回的字符串由日期格式控制。

转载请注明来自码农世界,本文标题:《MySQL/Oracle 的字符串转日期、日期转字符串》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,91人围观)参与讨论

还没有评论,来说两句吧...

Top