目录
[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 后跟 AM 或 PM ) |
%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
。如果参数为
NULL
,TIMEDIFF()
函数将返回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');