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');
相关推荐
shuair24 分钟前
mysql8支持远程访问 -mysql5.7支持远程访问
linux·mysql
瑞士卷@39 分钟前
MyBatis入门到精通(Mybatis学习笔记)
java·数据库·后端·mybatis
白云偷星子1 小时前
MySQL笔记13
数据库·笔记·mysql
施嘉伟1 小时前
静默安装金仓数据库,到底有多简单?
数据库
Tapdata1 小时前
实时物化视图的新路径:从传统 Join 到跨源实时查询
数据库
optimistic_chen1 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
FJW0208142 小时前
关系型数据库大王Mysql——DDL语句操作示例
数据库·mysql
言之。2 小时前
Chroma 开源的 AI 应用搜索与检索数据库(即向量数据库)
数据库·人工智能·开源
来旺2 小时前
互联网大厂Java面试全解析及三轮问答专项
java·数据库·spring boot·安全·缓存·微服务·面试
cr7xin2 小时前
基于Session和Redis实现短信验证码登录
数据库·redis·缓存