在MySQL中,如何按用户指定的格式显示时间?

在MySQL中,如何按用户指定的格式显示时间?

在MySQL中,时间戳是以UTC时间戳的形式存储的。但是,当我们需要将时间戳以用户指定的格式显示时,我们可以使用MySQL提供的DATE_FORMAT函数。

阅读更多:MySQL 教程

DATE_FORMAT函数

DATE_FORMAT函数可以按照用户指定的格式将日期/时间类型的数据格式化为一个字符串。它的基本语法如下:

DATE_FORMAT(date, format)

其中,date参数可以是一个日期/时间列也可以是一个日期/时间表达式。format参数是一个字符串,用于指定返回的时间格式。

下面是一些常用的format参数:

字符 说明
%M 月份的英文全称(January-December)
%m 月份的数字表示(00-12)
%W 星期的英文全称(Sunday-Saturday)
%w 星期的数字表示(0-6)
%d 月份中的第几天(00-31)
%e 月份中的第几天(0-31)
%Y 年份,四位数字表示
%y 年份,两位数字表示
%H 小时,24小时制,00-23
%h 小时,12小时制,00-12
%i 分钟,00-59
%s 秒数,00-59
%p 上午(AM)或下午(PM)

例子:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
-- 返回当前时间的格式是"年-月-日 时:分:秒"

输出:

+--------------------------------+
| DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') |
+--------------------------------+
| 2022-02-23 19:56:31            |
+--------------------------------+

另外,DATE_FORMAT函数也支持自定义format参数。例如,要将日期格式化为YYYY年M月D日,可以使用以下语句:

SELECT DATE_FORMAT(CURRENT_DATE(), "%Y年%M月%D日");
-- 返回当前日期的格式是“年月日”

输出:

+----------------------------------+
| DATE_FORMAT(CURRENT_DATE(), "%Y年%M月%D日") |
+----------------------------------+
| 2022年02月23日                    |
+----------------------------------+

但是,需要注意的是,当用户指定的format参数无法正确解析时,DATE_FORMAT函数会返回NULL。

UNIX_TIMESTAMP函数

如果我们需要将一个日期时间字符串转换为时间戳,可以使用MYSQL的UNIX_TIMESTAMP函数。UNIX_TIMESTAMP函数可以将日期/时间类型的数据转换为对应的Unix时间戳。它的基本语法如下:

UNIX_TIMESTAMP(date)

其中,date参数可以是一个日期/时间列也可以是一个日期/时间表达式。

例如:

SELECT UNIX_TIMESTAMP('2022-02-23');
-- 返回值是日期'2022-02-23'相应的时间戳

输出:

+------------------------+
| UNIX_TIMESTAMP("2022-02-23") |
+------------------------+
|             1645574400 |
+------------------------+

FROM_UNIXTIME函数

FROM_UNIXTIME函数可以将UNIX时间戳或Unix时间戳表达式转换为一个时间日期字符串。它的基本语法如下:

FROM_UNIXTIME(unix_timestamp, format)

其中,unix_timestamp参数是一个Unix时间戳,format参数是一个字符串,用于指定返回时间日期的格式。

例如:

SELECT FROM_UNIXTIME(1645574400, '%Y-%m-%d %H:%i:%s');
-- 返回Unix时间戳对应的日期表示

输出:

+------------------------------------------------+
| FROM_UNIXTIME(1645574400, '%Y-%m-%d %H:%i:%s') |
+------------------------------------------------+
| 2022-02-23 00:00:00                            |
+------------------------------------------------+

总结

MySQL提供了很多函数可以方便地将时间戳按用户指定的格式显示。DATE_FORMAT函数可以根据用户指定的format参数将日期时间类型格式化为一个字符串,UNIX_TIMESTAMP函数可以将日期时间字符串转换为对应的Unix时间戳,而FROM_UNIXTIME函数可以将Unix时间戳转换为指定格式的日期时间字符串。

使用这些函数,我们可以轻松地在MySQL中按用户指定的格式显示时间。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程