MySQL 时间转换日期格式
1. 引言
在MySQL中,日期和时间类型存储的格式是不同于人们通常所使用的日期时间格式的。因此,当我们从数据库中查询或存储日期和时间数据时,有时需要将其转换为我们所熟悉的日期时间格式。本文将详细介绍如何在MySQL中进行时间转换和日期格式化。
2. 时间转换
在MySQL中,我们通常使用UNIX_TIMESTAMP()
函数将日期时间转换为UNIX时间戳。UNIX时间戳是一个表示自1970年1月1日 00:00:00以来经过的秒数的整数值。下面是将日期时间转换为UNIX时间戳的示例:
SELECT UNIX_TIMESTAMP('2023-08-31 14:30:00');
运行以上代码,将返回1690977000
,表示该日期时间对应的UNIX时间戳。
如果我们有一个UNIX时间戳,并希望将其转换为日期时间格式,可以使用FROM_UNIXTIME()
函数。下面是将UNIX时间戳转换为日期时间格式的示例:
SELECT FROM_UNIXTIME(1690977000);
运行以上代码,将返回2023-08-31 14:30:00
,表示该UNIX时间戳所对应的日期时间。
3. 日期格式化
在MySQL中,我们可以使用DATE_FORMAT()
函数对日期进行格式化。DATE_FORMAT()
函数接受两个参数:日期和格式化字符串。下面是对日期进行不同格式化的示例:
-- 将日期格式化为'YYYY-MM-DD'格式
SELECT DATE_FORMAT('2022-09-15', '%Y-%m-%d');
-- 将日期格式化为'Month, Day Year'格式
SELECT DATE_FORMAT('2022-09-15', '%M, %e %Y');
-- 将日期格式化为'DD/MM/YYYY'格式
SELECT DATE_FORMAT('2022-09-15', '%d/%m/%Y');
运行以上代码,将分别返回2022-09-15
、September, 15 2022
和15/09/2022
,表示对日期进行不同格式化后的结果。
4. 时间格式化
MySQL中的时间格式化与日期格式化类似,同样使用DATE_FORMAT()
函数。不同之处在于时间的格式化字符串不同。下面是对时间进行不同格式化的示例:
-- 将时间格式化为'HH:MM'格式
SELECT DATE_FORMAT('14:30:00', '%H:%i');
-- 将时间格式化为'HH:MM:SS'格式
SELECT DATE_FORMAT('14:30:00', '%H:%i:%s');
-- 将时间格式化为'HH:MM AM/PM'格式
SELECT DATE_FORMAT('14:30:00', '%h:%i %p');
运行以上代码,将分别返回14:30
、14:30:00
和02:30 PM
,表示对时间进行不同格式化后的结果。
5. 日期时间格式化
如果我们要对日期时间进行整体格式化,可以使用DATE_FORMAT()
函数。下面是对日期时间进行不同格式化的示例:
-- 将日期时间格式化为'YYYY-MM-DD HH:MM:SS'格式
SELECT DATE_FORMAT('2022-09-15 14:30:00', '%Y-%m-%d %H:%i:%s');
-- 将日期时间格式化为'Month Day, Year HH:MM AM/PM'格式
SELECT DATE_FORMAT('2022-09-15 14:30:00', '%M %e, %Y %h:%i %p');
运行以上代码,将分别返回2022-09-15 14:30:00
和September 15, 2022 02:30 PM
,表示对日期时间进行不同格式化后的结果。
6. 时区转换
在MySQL中,可以使用CONVERT_TZ()
函数将日期时间从一个时区转换为另一个时区。CONVERT_TZ()
函数接受三个参数:日期时间值、原时区和目标时区。下面是将日期时间从一个时区转换为另一个时区的示例:
SELECT CONVERT_TZ('2022-09-15 14:30:00', 'UTC', 'America/New_York');
运行以上代码,将返回2022-09-15 10:30:00
,表示将UTC时间转换为美东时间。
总结
本文详细介绍了如何在MySQL中进行时间转换和日期格式化。我们可以使用UNIX_TIMESTAMP()
函数将日期时间转换为UNIX时间戳,使用FROM_UNIXTIME()
函数将UNIX时间戳转换为日期时间格式。同时,DATE_FORMAT()
函数可以用来对日期、时间和日期时间进行不同格式化。另外,还可以使用CONVERT_TZ()
函数将日期时间从一个时区转换为另一个时区。