mysql查询时间戳和日期的转换

2025-02-09 09:43:13     浏览次数:8

在MySQL中,时间戳(Timestamp)和日期(Date)是两种常见的时间数据类型。时间戳通常以整数形式存储,表示从 1970 年 1 月 1 日(UTC)开始的秒数或毫秒数,而日期则以YYYY-MM-DD的格式存储。在实际开发中,我们经常需要在时间戳和日期之间进行转换。以下是 MySQL 中时间戳和日期转换的常用方法。

mysql查询时间戳和日期的转换

1、时间戳转日期

    MySQL 提供了 FROM_UNIXTIME() 函数,用于将时间戳转换为日期格式。

    (1)、语法

FROM_UNIXTIME(unix_timestamp, [format])

    unix_timestamp: 时间戳(以秒为单位)。

    format: 可选参数,指定输出的日期格式。如果省略,默认格式为 YYYY-MM-DD HH:MM:SS。

    (2)、示例:

    -- 将时间戳 1739160000 转换为日期
    SELECT FROM_UNIXTIME(1739160000);
    -- 输出:2025-2-10 12:00:00

    -- 指定输出格式
    SELECT FROM_UNIXTIME(1739160000, '%Y-%m-%d');
    -- 输出:2025-2-10

2、日期转时间戳

    MySQL 提供了 UNIX_TIMESTAMP() 函数,用于将日期转换为时间戳。

    (1)、语法

UNIX_TIMESTAMP([date])

    date: 可选参数,表示需要转换的日期。如果省略,则返回当前时间的时间戳。

    (2)、示例:

    -- 将当前时间转换为时间戳
    SELECT UNIX_TIMESTAMP();
    -- 输出:当前时间的时间戳(以秒为单位)

    -- 将指定日期转换为时间戳
    SELECT UNIX_TIMESTAMP('2025-2-10 12:00:00');
    -- 输出:1739160000

3、毫秒级时间戳的处理

    如果时间戳是以毫秒为单位(例如 JavaScript 生成的时间戳),则需要先将毫秒转换为秒,再进行日期转换。

    -- 将毫秒级时间戳 1739160000000 转换为日期
    SELECT FROM_UNIXTIME(1739160000000 / 1000);
    -- 输出:2025-2-10 12:00:00

4、日期格式化

    在时间戳和日期的转换过程中,可以使用 DATE_FORMAT() 函数对日期进行格式化。

    (1)、语法:

DATE_FORMAT(date, format)

    date: 需要格式化的日期。

    format: 指定输出的日期格式。

(2)、示例:

    -- 将日期格式化为 'YYYY年MM月DD日'
    SELECT DATE_FORMAT('2025-2-10', '%Y年%m月%d日');
    -- 输出:2025年02月10日

5、常见日期格式符号

符号描述
%Y四位数的年份(例如 2023)
%y两位数的年份(例如 23)
%m月份(01-12)
%d日期(01-31)
%H小时(00-23)
%i分钟(00-59)
%s秒(00-59)
%W星期名称(例如 Monday)
%a缩写的星期名称(例如 Mon)


返回数据库教程列表