MySQL 【日期】函数大全(六)

目录

[1、TIME_FORMAT() 按照指定的格式格式化时间。](#1、TIME_FORMAT() 按照指定的格式格式化时间。)

[2、TIME_TO_SEC() 将指定的时间值转为秒数。](#2、TIME_TO_SEC() 将指定的时间值转为秒数。)

[3、TIMEDIFF() 返回两个时间之间的差值。](#3、TIMEDIFF() 返回两个时间之间的差值。)

[4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。](#4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。)

[5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果。](#5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果。)

[6、TIMESTAMPDIFF() 返回两个日期时间之间的时间间隔。](#6、TIMESTAMPDIFF() 返回两个日期时间之间的时间间隔。)

[7、UNIX_TIMESTAMP() 将指定的日期/日期时间转为距离 UTC 时间 1970-01-01 00:00:00 的秒数。](#7、UNIX_TIMESTAMP() 将指定的日期/日期时间转为距离 UTC 时间 1970-01-01 00:00:00 的秒数。)

[8、TO_DAYS() 将指定日期转为距离 0 年的天数并返回。](#8、TO_DAYS() 将指定日期转为距离 0 年的天数并返回。)

[9、TO_SECONDS() 将指定的日期/日期时间转为距离 0 年的秒数并返回结果。](#9、TO_SECONDS() 将指定的日期/日期时间转为距离 0 年的秒数并返回结果。)


|--------------|---------------|----------------|--------------------|
| TIME_FORMAT | IME_TO_SEC | TIMEDIFF | TIMESTAMP |
| TIMESTAMPADD | TIMESTAMPDIFF | UNIX_TIMESTAMP | TO_DAYS、TO_SECONDS |

1、TIME_FORMAT() 按照指定的格式格式化时间。

TIME_FORMAT(time, format)

*time:*需要格式化的时间。

*format:*格式化模式字符串。

格式化符号:

占位符 说明
%f 微秒 (000000..999999)
%H 小时 (00..23)
%h 小时 (01..12)
%I 小时 (01..12)
%i 分钟 (00..59)
%k 小时 (0..23)
%l 小时 (1..12)
%p AM 或者 PM
%r 十二小时制时间 (hh:mm:ss 后跟 AMPM)
%S 秒 (00..59)
%s 秒 (00..59)
%T 二十四小时制时间 (hh:mm:ss)
%% 转义 %
sql 复制代码
SELECT
    TIME_FORMAT("19:30:10", "%H %i %s"),
    TIME_FORMAT("19:30:10", "%h %i %s %p"),
    TIME_FORMAT("19:30:10", "%r"),
    TIME_FORMAT("19:30:10", "%T"),
    TIME_FORMAT("19:30:10", "%H %i %s")

2、TIME_TO_SEC() 将指定的时间值转为秒数。

sql 复制代码
SELECT
    TIME_TO_SEC('10:10:10') ,
    TIME_TO_SEC('10:10') ,
    TIME_TO_SEC('10');

3、TIMEDIFF() 返回两个时间之间的差值。

TIMEDIFF(time1, time2)

*time1:*一个时间或者日期时间表达式。

*time2:*另一个时间或者日期时间表达式。
返回一个 HH:MM:SS 格式的时间值。

如果指定的表达式不是一个合法的时间或者日期时间,TIMEDIFF() 函数将返回 NULL

如果参数为 NULLTIMEDIFF() 函数将返回 NULL

sql 复制代码
SELECT
    TIMEDIFF('12:12:12', '12:10:10'),
    TIMEDIFF('12:12:12', '10:10:10');
sql 复制代码
SELECT TIMEDIFF('2024-02-28 12:12:12', '2024-02-21 10:10:10');
sql 复制代码
SELECT TIMEDIFF(NOW(), '2024-02-28 10:10:10');

4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。

TIMESTAMP(date_or_datetime)

TIMESTAMP(date_or_datetime, time)

date_or_datetime: 一个日期或者日期时间表达式。格式: YYYY-MM-DD 或者 YYYY-MM-DD HH:MM:SS

time: 一个时间值。格式:HH:MM:SS

sql 复制代码
SELECT TIMESTAMP('2024-02-28');
sql 复制代码
SELECT TIMESTAMP('2024-02-28', '10:10:10');
sql 复制代码
SELECT TIMESTAMP('2024-02-28 12:00:00', '12:00:00');

5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果。

TIMESTAMPADD(unit, interval, datetime)

unit: 时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.

*interval:*一个表示时间间隔的整数值。

*datetime:*一个 datetime 值或表达式。

sql 复制代码
SELECT
    TIMESTAMPADD(WEEK, 1, '2024-02-28'),
    TIMESTAMPADD(DAY, 7, '2024-02-28');

6、TIMESTAMPDIFF() 返回两个日期时间之间的时间间隔。

TIMESTAMPDIFF(unit, datetime1, datetime2)

unit: 时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.

*datetime1:*一个 datetime 值或表达式。

*datetime2:*一个 datetime 值或表达式。

sql 复制代码
SELECT
    TIMESTAMPDIFF(YEAR, '2024-12-28', '2024-02-28'),
    TIMESTAMPDIFF(MONTH, '2024-02-28', '2023-02-28'),
    TIMESTAMPDIFF(MONTH, '2023-02-28', '2024-02-28')

7、UNIX_TIMESTAMP() 将指定的日期/日期时间转为距离 UTC 时间 1970-01-01 00:00:00 的秒数。

sql 复制代码
SELECT
    UNIX_TIMESTAMP('2024-10-10'),
    UNIX_TIMESTAMP(NOW());

8、TO_DAYS() 将指定日期转为距离 0 年的天数并返回。

TO_DAYS() 函数与 FROM_DAYS()

函数是相反的。

sql 复制代码
SELECT
    TO_DAYS('2024-02-28'),
    TO_DAYS('2024-03-01');

9、TO_SECONDS() 将指定的日期/日期时间转为距离 0 年的秒数并返回结果。

sql 复制代码
SELECT
    TO_SECONDS('2024-02-28'),
    TO_SECONDS('2024-02-28 10:10:10');
相关推荐
tiancaijiben31 分钟前
阿里云SSL证书自动续签与部署完全指南:从托管服务到开源工具全方案解析
数据库
全堆鸿蒙31 分钟前
25 数据库设计与表结构规划:5 张表的设计思路
数据库·华为·cocoa·harmonyos
笃行35044 分钟前
【金仓数据库产品体验官】_坏得起_实测:备份恢复、PITR 时间穿越与主备切换——KingbaseES V9R3C18 深度体验(三)
数据库
笃行3503 小时前
从兼容到进阶:驱动直连、窗口函数与动态 SQL 实测——KingbaseES V9R3C18 深度体验(二)
数据库
笃行3503 小时前
MySQL 的 JSON 字段迁到金仓还能用吗?——KingbaseES V9R3C18 JSON 操作符与函数兼容实测
数据库
IpdataCloud4 小时前
跨境AI金融风险怎么防?IP风险画像的实战应用指南
数据库·tcp/ip·金融·ip
Alan_756 小时前
API 接口慢调用根因定位:从 TCP 建连到数据库 IO 的全栈排查实战
数据库
多巴胺梦想家7 小时前
事务与并发控制:当多人同时操作数据库
服务器·数据库·oracle
howard20058 小时前
PostgreSQL起步
数据库·postgresql