news 2026/6/7 12:50:29

MySQL 字符串日期格式转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 字符串日期格式转换

在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执行进行日期转换了。

验证,结果如下:

#总结
  1. Oracle中字符串转日期:to_date('28-11-2023 14:15:17', 'dd-mm-yyyy hh24:mi:ss')
  2. MySQL中字符串转日期:str_to_date('28-11-2023 14:15:17', '%d-%m-%Y %H:%i:%s')
  3. MySQL常见时间格式化:(与字符串中的对应使用)
    1. %Y: 年份,四位数字
    2. %m:月份,两位数字
    3. %d: 日期,两位数字
    4. %H:小时(24小时制),两位数字
    5. %i: 分钟,两位数字
    6. %s: 秒,两位数字
  4. 扩展:MySQL中如果想将日期转换成字符串可以使用date_format(date,format)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 14:18:10

市场营销的5个真相:从B2B到品牌的深刻教训

目录 情感胜于逻辑——即使在“理性”的B2B世界 你的受众是完整的人——活跃在所有平台 “善意”毫无意义——如果没有多元化的视角 抛弃僵硬的术语——清晰和人性化才能建立信任 品牌是你的护城河——而不仅仅是一个标志 Conclusion: Your Next Move 尽管我们投入了巨额…

作者头像 李华
网站建设 2026/5/30 20:18:56

MySQL 事务的操作和四大特性

??所属专栏:MySQL**** ??1. 事务 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败 例如转账的过程&#xff1…

作者头像 李华
网站建设 2026/5/30 5:58:23

MySQL 与 Redis 的数据一致性问题

读数据的逻辑基本一致问题1: 一致性有哪些?MySQL 与 Redis 的数据一致性方案有哪些? 先写MySQL还是先写Redis?缓存数据是更新还是清除?强一致还是最终一致? 问题: 如果mysql写成功了,但是Redis写(删除)失败了怎么办?重试机制的幂等问题如何解决? 方案1: 先更新 MySQL 再…

作者头像 李华
网站建设 2026/5/19 23:02:54

深度学习毕设项目推荐-基于python深度学习的土豆疾病识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/5 0:56:55

材料电性能检测仪器的原理、演进与工程应用

材料电性能检测的核心是通过仪器精确测量介电常数(ε)和介质损耗角正切值(tanδ),这些参数直接反映材料的绝缘性能、能量损耗和高频适应性。其原理基于电桥法、谐振法或阻抗法,通过施加交流电场并测量材料的…

作者头像 李华