MYSQL日期 字符串 时间戳互转
发布日期:2021-05-15 10:35:42 浏览次数:17 分类:精选文章

本文共 1901 字,大约阅读时间需要 6 分钟。

MySQL中日期和时间的处理是非常常见的操作,以下是一些实用的转换方法和技巧。这些方法将帮助你在不同的场景中灵活处理日期和时间数据。

时间转字符串

在MySQL中,DATE_FORMAT()函数是处理日期转字符串的主要工具。以下是一个示例:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') END_REFRESH; -- 2018-09-17 23:33:34

返回格式化后的日期字符串,例如年-月-日 时:分:秒。%Y表示四位年份,%m表示两位月份,%d表示两位日期,%H表示24小时制的小时,%i表示两位分钟,%s表示两位秒。

时间转时间戳

如果你需要将时间转换为 Linux 时间戳(秒数),可以使用unix_timestamp()函数:

SELECT unix_timestamp(NOW()); -- 1537198489

返回当前时间的时间戳值,单位是秒。这个值可以在其他系统中解析为具体的时间。

字符串转时间

要将日期字符串转换回时间,可以使用str_to_date()函数。例如:

SELECT str_to_date('2018-02-26', '%Y-%m-%d %H'); -- 2018-02-26 00:00:00

这里的 %Y-%m-%d %H 表示从字符串中提取四位年份、两位月份和两位日期,然后转换为指定的时间(默认为00:00:00)。

字符串转时间戳

如果你有一个日期字符串,可以通过unix_timestamp()直接将其转换为时间戳。例如:

SELECT unix_timestamp('2018-09-17'); -- 1537113600

返回的秒数可以用于进一步处理。

时间戳转时间

要将时间戳转换回具体的时间,可以使用from_unixtime()函数:

SELECT from_unixtime(1537113600); -- 2018-09-17 00:00:00

这个函数可以将时间戳转换为格式化的日期和时间。

时间戳转字符串

如果需要将时间戳转换为特定格式的字符串,可以结合from_unixtime()DATE_FORMAT()使用:

SELECT from_unixtime(1537113600, '%Y-%d'); -- 2018-17

这里的 %Y-%d 表示四位年份和两位日期。注意,月份显示为数字形式,例如2018-09而不是2018-September

附表

以下是MySQL中常用的日期格式化格式字符:

格式字符 描述 示例
%S 秒(两位数) 00, 01, ..., 59
%s 秒(两位数) 00, 01, ..., 59
%I 分(两位数) 00, 01, ..., 59
%i 分(两位数) 00, 01, ..., 59
%H 小时(24小时制,两位数) 00, 01, ...,23
%h 小时(12小时制,两位数) 00, 01, ...,12
%k 小时(24小时制,无前导零) 0, 1, ...,23
%l 小时(12小时制,无前导零) 0, 1, ...,12
%T 时间(HH:mm:ss) 00:00:00, 23:59:59
%r 时间(hh:mm:ss AM/PM) 12:34:56 PM
%p AM/PM标识 AM或PM
%W 星期(英文三letter abbreviation) Sunday, Monday
%a 星期简写形式 Sun, Mon, ..., Sat
%w 星期(数字形式,0=Sun, 1=Mon) 0到6
%U 星期中第n周的星期天(n=1起) 1,2, ...
%u 星期中第n周的星期一(n=1起) 1,2, ...
%d 天(两位数) 01, 02, ...,31
%e 天(数字形式) 1,02, ...,31
%D 英文天形式(如1st, 2nd) 1st, 2nd, ...,31st
%j 截至当前日期的天数(三位数) 366
%M 月份英文名(如January) January, February
%b 月份英文缩写(如Jan) Jan, Feb, ..., Dec
%m 月份两位数字(01-12) 01, 02, ...,12
%c 月份数字(1-12) 1,2, ...,12
%Y 四位年份 2018,2019, ...
%y 两位年份 18,19, ...
%w 重复,已解释 不再重复
%f 小数秒数 .123456

通过合理使用这些格式字符,你可以根据具体需求自定义日期和时间的显示格式。

上一篇:mysql之TIMESTAMP(时间戳)用法详解
下一篇:Mysql 如何设置字段自动获取当前时间

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月18日 14时20分26秒