MySQL 字符串日期格式转换的几种方法

 更新时间:2024年08月06日 08:38:16   作者:XIAO GUOBA  
MySQL经常需要将字符串类型的日期转换成日期或时间类型,本文主要介绍了MySQL 字符串日期格式转换的几种方法,包括使用STR_TO_DATE()和DATE_FORMAT()函数,具有一定的参考价值,感兴趣的可以了解一下

在MySQL中,经常需要将字符串类型的日期转换成日期或时间类型,或者在不同的日期格式之间进行转换。MySQL提供了几种方法来实现这一点,包括使用STR_TO_DATE()DATE_FORMAT()函数。

1. 使用STR_TO_DATE()函数

STR_TO_DATE()函数可以将字符串转换成日期或时间格式。它接受两个主要参数:要转换的字符串和格式字符串。

语法:

STR_TO_DATE(str, format)
  • str 是要转换的字符串。
  • format 是该字符串的日期或时间格式。

示例:
假设你有一个日期字符串 '2023-04-01',并且它是以 'YYYY-MM-DD' 格式存储的,但你希望将它转换成日期类型以进行日期计算。

SELECT STR_TO_DATE('2023-04-01', '%Y-%m-%d') AS converted_date;

这将返回日期类型的结果,格式为 '2023-04-01'

2. 使用DATE_FORMAT()函数

DATE_FORMAT()函数用于将日期或时间值格式化为指定的格式。虽然这主要用于格式化日期时间值,但你也可以用它来“转换”日期到字符串的特定格式。

语法:

DATE_FORMAT(date, format)
  • date 是日期或时间值。
  • format 是你希望返回的日期时间格式。

示例:
如果你有一个日期类型的值,并且希望将其格式化为 'YYYYMMDD' 格式的字符串。

SELECT DATE_FORMAT(NOW(), '%Y%m%d') AS formatted_date;

这里NOW()函数返回当前的日期和时间,然后DATE_FORMAT()将其格式化为 'YYYYMMDD' 格式的字符串。

3. 转换和格式化的结合使用

有时,你可能需要先将字符串转换成日期类型,然后再将其格式化为另一种格式的字符串。这可以通过结合使用STR_TO_DATE()DATE_FORMAT()来实现。

示例:
假设你有一个日期字符串 '01-Apr-2023',并且你希望将其转换为 'YYYYMMDD' 格式的字符串。

SELECT DATE_FORMAT(STR_TO_DATE('01-Apr-2023', '%d-%b-%Y'), '%Y%m%d') AS formatted_string;

这里,STR_TO_DATE()首先将字符串转换为日期类型,然后使用DATE_FORMAT()将其格式化为 'YYYYMMDD'

总结

通过STR_TO_DATE()DATE_FORMAT()函数,MySQL允许你在字符串和日期类型之间转换,并在不同的日期格式之间自由转换。这在进行数据清洗、处理和报表生成时非常有用。

起因

需要将Oracle中的数据导到MySQL中

阻碍

在Oracle导出数据时,发现导出的SQL脚本中的日期转换是to_date('28-11-2023 14:15:17', 'dd-mm-yyyy hh24:mi:ss')的形式,但MySQL并不认识这个格式转换函数,此时需要将Oracle中这个日期转换函数替换成MySQL中的日期格式转换函数才能在MySQL中执行导出的脚本,那么在MySQL中日期如何转换呢?

分析

to_date('28-11-2023 14:15:17', 'dd-mm-yyyy hh24:mi:ss')中,是要将给定的字符串28-11-2023 14:15:17按照dd-mm-yyyy hh24:mi:ss的格式转换成日期,那么我们也需要在MySQL找到一个函数能够将指定的字符串按照一定的格式转换成日期。

解决

在MySQL中可以使用str_to_date(str,format)这个函数来实现将字符串按照时间格式转换成日期。那么对于Oracle中的to_date('28-11-2023 14:15:17', 'dd-mm-yyyy hh24:mi:ss')可以修改成str_to_date('28-11-2023 14:15:17', '%d-%m-%Y %H:%i:%s'),替换后就可以在MySQL执行进行日期转换了。

验证,结果如下:

总结

  • Oracle中字符串转日期:to_date('28-11-2023 14:15:17', 'dd-mm-yyyy hh24:mi:ss')
  • MySQL中字符串转日期:str_to_date('28-11-2023 14:15:17', '%d-%m-%Y %H:%i:%s')
  • MySQL常见时间格式化:(与字符串中的对应使用)

    %Y: 年份,四位数字

    %m:月份,两位数字

    %d: 日期,两位数字

    %H:小时(24小时制),两位数字

    %i: 分钟,两位数字

    %s: 秒,两位数字

  • 扩展:MySQL中如果想将日期转换成字符串可以使用date_format(date,format)

到此这篇关于MySQL 字符串日期格式转换的几种方法的文章就介绍到这了,更多相关MySQL 字符串日期格式转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • MySQL数据库输入密码后闪退问题的解决方法

    MySQL数据库输入密码后闪退问题的解决方法

    这篇文章主要为大家详细介绍了MySQL数据库输入密码后闪退的问题及解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • mysql的联合索引(复合索引)的实现

    mysql的联合索引(复合索引)的实现

    这篇文章主要介绍了mysql的联合索引(复合索引)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 深入理解MySQL双字段分区(OVER(PARTITION BY A,B)

    深入理解MySQL双字段分区(OVER(PARTITION BY A,B)

    本文主要介绍了MySQL中的窗口函数双字段分区功能(OVER(PARTITION BY A,B),分析其在数据分组和性能优化中的应用,提高查询效率,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09
  • 详解SUM函数在MySQL中的值处理原则

    详解SUM函数在MySQL中的值处理原则

    在SQL中,SUM函数是用于计算指定字段的总和的聚合函数,这篇文章将给大家详细介绍了SUM函数在SQL中的值处理原则,文中有详细的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-12-12
  • MySQL修改tmpdir参数

    MySQL修改tmpdir参数

    本文给大家分享的是在linux系统下MySQL修改tmpdir参数解决tmpdir报错的问题,有相同需求的小伙伴可以参考下
    2016-02-02
  • mysql 有关“InnoDB Error ib_logfile0 of different size”错误

    mysql 有关“InnoDB Error ib_logfile0 of different size”错误

    mysql 有关“InnoDB Error ib_logfile0 of different size”错误的解决方法,需要的朋友可以参考下。
    2011-06-06
  • MySQL开启Slow慢查询的方法示例

    MySQL开启Slow慢查询的方法示例

    这篇文章主要给大家介绍了关于MySQL开启Slow慢查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 从 MySQL源码分析网络IO模型

    从 MySQL源码分析网络IO模型

    这篇文章主要为大家介绍了从 MySQL源码分析网络IO模型,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • mysql的日期和时间函数大全

    mysql的日期和时间函数大全

    mysql的日期和时间函数 这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。
    2008-04-04
  • MySQL数据库基础学习之JSON函数各类操作详解

    MySQL数据库基础学习之JSON函数各类操作详解

    很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。这篇文章就为大家整理了MySQL中JSON函数的各类操作,感兴趣的可以了解一下
    2023-02-02

最新评论