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');
相关推荐
GottdesKrieges22 分钟前
obd运维OceanBase数据库的常见场景
运维·数据库·oceanbase
慢慢沉2 小时前
Lua(数据库访问)
开发语言·数据库·lua
武子康6 小时前
Java-82 深入浅出 MySQL 内部架构:服务层、存储引擎与文件系统全覆盖
java·开发语言·数据库·学习·mysql·spring·微服务
vdoi8 小时前
【Mysql】 Mysql zip解压版 Win11 安装备忘
数据库·mysql
TDengine (老段)9 小时前
TDengine 转化类函数 TO_CHAR 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
泰勒疯狂展开9 小时前
Linux研学-MySQL安装
linux·mysql·adb
程序员编程指南9 小时前
Qt 与 SQLite 嵌入式数据库开发
c语言·数据库·c++·qt
fht19 小时前
SQLite
数据库·sqlite
float_六七10 小时前
MySQL索引背后的B+树奥秘
数据库·b树·mysql
~央千澈~10 小时前
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
数据库·mongodb