查询中使用时间函数
本文通过具体示例介绍如何在查询中使用时间函数。
时间函数
seekdb 常用的时间类型有 DATE、TIMESTAMP、 TIME、DATETIME、YEAR 等,在 seekdb 下,常用的时间函数包括 NOW()、CURDATE() 和 CURTIME() 等。
示例
调整时间类型显示的格式
在 seekdb 下,可以用通过 NOW() 输出当前时间,使用 DATE_FORMAT 函数可以调整时间类型显示的格式。
SELECT NOW(),DATE_FORMAT(NOW(),"%Y/%M/%D %T") new_time;
+---------------------+-----------------------------+
| NOW() | new_time |
+---------------------+-----------------------------+
| 2025-12-23 18:15:36 | 2025/December/23rd 18:15:36 |
+---------------------+-----------------------------+
1 row in set
提取时间中的年、月、日、时、分、秒
在 seekdb 下,可以使用 EXTRACT() 函数从时间中提取年、月、日、时、分、秒信息。
SET @dt = NOW();
Query OK, 0 rows affected
SELECT @dt
, EXTRACT(YEAR FROM @dt) d_year
, EXTRACT(MONTH FROM @dt) d_month
, EXTRACT(week FROM @dt) d_week
, EXTRACT(DAY FROM @dt) d_day
, EXTRACT(HOUR FROM @dt) d_hour
, EXTRACT(MINUTE FROM @dt) d_min
, EXTRACT(SECOND FROM @dt) d_second
, EXTRACT(year_month FROM @dt) d_year_month
, EXTRACT(hour_minute FROM @dt) d_hour_min
\G
*************************** 1. row ***************************
@dt: 2025-12-23 18:15:53
d_year: 2025
d_month: 12
d_week: 51
d_day: 23
d_hour: 18
d_min: 15
d_second: 53
d_year_month: 202512
d_hour_min: 1815
1 row in set
时间类型的加减运算
在 seekdb 下,可以使用 DATE_ADD() 或 DATE_SUB() 函数对时间进行加减,SQL 语句示例如下:
SET @dt = NOW();
Query OK, 0 rows affected
SELECT @dt
, DATE_ADD(@dt, INTERVAL 1 DAY ) t1
, DATE_ADD(@dt, INTERVAL 1 HOUR ) t2
, DATE_ADD(@dt, INTERVAL -10 MINUTE ) t3
, DATE_ADD(@dt, INTERVAL -1 MONTH ) t4
, DATE_ADD(@dt, INTERVAL 1 YEAR ) t5
\G
*************************** 1. row ***************************
@dt: 2025-12-23 18:16:11
t1: 2025-12-24 18:16:11
t2: 2025-12-23 19:16:11
t3: 2025-12-23 18:06:11
t4: 2025-11-23 18:16:11
t5: 2026-12-23 18:16:11
1 row in set
有关更多时间类型用法,参见 《SQL 参考》 章节 。