MySQL 字符串日期格式转换的几种方法!
MySQL 字符串日期格式转换的几种方法!
在MySQL中,经常需要将字符串类型的日期转换成日期或时间类型,或者在不同的日期格式之间进行转换。MySQL提供了几种方法来实现这一点,包括使用STR_TO_DATE()
和DATE_FORMAT()
函数。
1. 使用STR_TO_DATE()函数
STR_TO_DATE()
函数可以将字符串转换成日期或时间格式。它接受两个主要参数:要转换的字符串和格式字符串。
语法:
1
|
STR_TO_DATE(str, format) |
str
是要转换的字符串。format
是该字符串的日期或时间格式。
示例:
假设你有一个日期字符串 '2023-04-01'
,并且它是以 'YYYY-MM-DD'
格式存储的,但你希望将它转换成日期类型以进行日期计算。
1
|
SELECT STR_TO_DATE( '2023-04-01' , '%Y-%m-%d' ) AS converted_date; |
这将返回日期类型的结果,格式为 '2023-04-01'
。
2. 使用DATE_FORMAT()函数
DATE_FORMAT()
函数用于将日期或时间值格式化为指定的格式。虽然这主要用于格式化日期时间值,但你也可以用它来“转换”日期到字符串的特定格式。
语法:
1
|
DATE_FORMAT( date , format) |
date
是日期或时间值。format
是你希望返回的日期时间格式。
示例:
如果你有一个日期类型的值,并且希望将其格式化为 'YYYYMMDD'
格式的字符串。
1
|
SELECT DATE_FORMAT(NOW(), '%Y%m%d' ) AS formatted_date; |
这里NOW()
函数返回当前的日期和时间,然后DATE_FORMAT()
将其格式化为 'YYYYMMDD'
格式的字符串。
3. 转换和格式化的结合使用
有时,你可能需要先将字符串转换成日期类型,然后再将其格式化为另一种格式的字符串。这可以通过结合使用STR_TO_DATE()
和DATE_FORMAT()
来实现。
示例:
假设你有一个日期字符串 '01-Apr-2023'
,并且你希望将其转换为 'YYYYMMDD'
格式的字符串。
1
|
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 字符串日期格式转换的几种方法的文章就介绍到这了。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论