目录
1、TIME_FORMAT() 按照指定的格式格式化时间。
2、TIME_TO_SEC() 将指定的时间值转为秒数。
3、TIMEDIFF() 返回两个时间之间的差值。
4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。
5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果。
6、TIMESTAMPDIFF() 返回两个日期时间之间的时间间隔。
7、UNIX_TIMESTAMP() 将指定的日期/日期时间转为距离 UTC 时间 1970-01-01 00:00:00 的秒数。
8、TO_DAYS() 将指定日期转为距离 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 ) |
%% | 转义 % |
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()
将指定的时间值转为秒数。
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
。
SELECT
TIMEDIFF('12:12:12', '12:10:10'),
TIMEDIFF('12:12:12', '10:10:10');
SELECT TIMEDIFF('2024-02-28 12:12:12', '2024-02-21 10:10:10');
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
。
SELECT TIMESTAMP('2024-02-28');
SELECT TIMESTAMP('2024-02-28', '10:10:10');
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 值或表达式。
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 值或表达式。
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
的秒数。
SELECT
UNIX_TIMESTAMP('2024-10-10'),
UNIX_TIMESTAMP(NOW());
8、TO_DAYS()
将指定日期转为距离 0 年的天数并返回。
TO_DAYS()
函数与 FROM_DAYS()
函数是相反的。
SELECT
TO_DAYS('2024-02-28'),
TO_DAYS('2024-03-01');
9、TO_SECONDS()
将指定的日期/日期时间转为距离 0 年的秒数并返回结果。
SELECT
TO_SECONDS('2024-02-28'),
TO_SECONDS('2024-02-28 10:10:10');