|
1 | 1 | --- |
2 | | -title: 日期和时间函数 |
| 2 | +title: 日期与时间函数 |
3 | 3 | --- |
4 | 4 |
|
5 | | -本页面全面概述了 Databend 中的日期和时间函数,并按功能进行组织,方便参考。 |
| 5 | +本页面按功能分类,全面梳理 Databend 中的日期与时间函数,便于快速查阅。 |
6 | 6 |
|
7 | | -## 当前日期和时间函数 |
| 7 | +## 当前日期与时间函数 |
8 | 8 |
|
9 | | -| 函数 | 描述 | 示例 | |
10 | | -|----------|-------------|---------| |
11 | | -| [NOW](now.md) | 返回当前日期和时间 | `NOW()` → `2024-06-04 17:42:31.123456` | |
12 | | -| [CURRENT_TIMESTAMP](current-timestamp.md) | 返回当前日期和时间 | `CURRENT_TIMESTAMP()` → `2024-06-04 17:42:31.123456` | |
13 | | -| [TODAY](today.md) | 返回当前日期 | `TODAY()` → `2024-06-04` | |
14 | | -| [TOMORROW](tomorrow.md) | 返回明天的日期 | `TOMORROW()` → `2024-06-05` | |
15 | | -| [YESTERDAY](yesterday.md) | 返回昨天的日期 | `YESTERDAY()` → `2024-06-03` | |
| 9 | +| 函数 | 描述 | 示例 | |
| 10 | +|-------------------------------------------|--------------------------|------------------------------------------------------| |
| 11 | +| [NOW](now.md) | 返回当前日期和时间 | `NOW()` → `2024-06-04 17:42:31.123456` | |
| 12 | +| [CURRENT_TIMESTAMP](current-timestamp.md) | 返回当前日期和时间 | `CURRENT_TIMESTAMP()` → `2024-06-04 17:42:31.123456` | |
| 13 | +| [TODAY](today.md) | 返回当前日期 | `TODAY()` → `2024-06-04` | |
| 14 | +| [TOMORROW](tomorrow.md) | 返回明天的日期 | `TOMORROW()` → `2024-06-05` | |
| 15 | +| [YESTERDAY](yesterday.md) | 返回昨天的日期 | `YESTERDAY()` → `2024-06-03` | |
16 | 16 |
|
17 | | -## 日期和时间提取函数 |
| 17 | +## 日期与时间提取函数 |
18 | 18 |
|
19 | | -| 函数 | 描述 | 示例 | |
20 | | -|----------|-------------|---------| |
21 | | -| [YEAR](year.md) | 从日期中提取年份 | `YEAR('2024-06-04')` → `2024` | |
22 | | -| [MONTH](month.md) | 从日期中提取月份 | `MONTH('2024-06-04')` → `6` | |
23 | | -| [DAY](day.md) | 从日期中提取日 | `DAY('2024-06-04')` → `4` | |
24 | | -| [QUARTER](quarter.md) | 从日期中提取季度 | `QUARTER('2024-06-04')` → `2` | |
25 | | -| [WEEK](week.md) / [WEEKOFYEAR](weekofyear.md) | 从日期中提取周数 | `WEEK('2024-06-04')` → `23` | |
26 | | -| [EXTRACT](extract.md) | 从日期中提取指定部分 | `EXTRACT(MONTH FROM '2024-06-04')` → `6` | |
27 | | -| [DATE_PART](date-part.md) | 从日期中提取指定部分 | `DATE_PART('month', '2024-06-04')` → `6` | |
28 | | -| [YEARWEEK](yearweek.md) | 返回年份和周数 | `YEARWEEK('2024-06-04')` → `202423` | |
29 | | -| [MILLENNIUM](millennium.md) | 从日期中提取千年 | `MILLENNIUM('2024-06-04')` → `3` | |
| 19 | +| 函数 | 描述 | 示例 | |
| 20 | +|-------------------------------------------|--------------------------|------------------------------------------| |
| 21 | +| [YEAR](year.md) | 提取日期中的年份 | `YEAR('2024-06-04')` → `2024` | |
| 22 | +| [MONTH](month.md) | 提取日期中的月份 | `MONTH('2024-06-04')` → `6` | |
| 23 | +| [DAY](day.md) | 提取日期中的日 | `DAY('2024-06-04')` → `4` | |
| 24 | +| [QUARTER](quarter.md) | 提取日期中的季度 | `QUARTER('2024-06-04')` → `2` | |
| 25 | +| [WEEK](week.md) / [WEEKOFYEAR](weekofyear.md) | 提取日期中的周数 | `WEEK('2024-06-04')` → `23` | |
| 26 | +| [EXTRACT](extract.md) | 提取日期的指定部分 | `EXTRACT(MONTH FROM '2024-06-04')` → `6` | |
| 27 | +| [DATE_PART](date-part.md) | 提取日期的指定部分 | `DATE_PART('month', '2024-06-04')` → `6` | |
| 28 | +| [YEARWEEK](yearweek.md) | 返回年份和周数 | `YEARWEEK('2024-06-04')` → `202423` | |
| 29 | +| [MILLENNIUM](millennium.md) | 返回日期所在的千年 | `MILLENNIUM('2024-06-04')` → `3` | |
30 | 30 |
|
31 | | -## 日期和时间转换函数 |
| 31 | +## 日期与时间转换函数 |
32 | 32 |
|
33 | | -| 函数 | 描述 | 示例 | |
34 | | -|----------|-------------|---------| |
35 | | -| [DATE](date.md) | 将值转换为 DATE 类型 | `DATE('2024-06-04')` → `2024-06-04` | |
36 | | -| [TO_DATE](to-date.md) | 将字符串转换为 DATE 类型 | `TO_DATE('2024-06-04')` → `2024-06-04` | |
37 | | -| [TO_DATETIME](to-datetime.md) | 将字符串转换为 DATETIME 类型 | `TO_DATETIME('2024-06-04 12:30:45')` → `2024-06-04 12:30:45` | |
38 | | -| [TO_TIMESTAMP](to-timestamp.md) | 将字符串转换为 TIMESTAMP 类型 | `TO_TIMESTAMP('2024-06-04 12:30:45')` → `2024-06-04 12:30:45` | |
39 | | -| [TO_UNIX_TIMESTAMP](to-unix-timestamp.md) | 将日期转换为 Unix 时间戳 | `TO_UNIX_TIMESTAMP('2024-06-04')` → `1717516800` | |
40 | | -| [TO_YYYYMM](to-yyyymm.md) | 将日期格式化为 YYYYMM | `TO_YYYYMM('2024-06-04')` → `202406` | |
41 | | -| [TO_YYYYMMDD](to-yyyymmdd.md) | 将日期格式化为 YYYYMMDD | `TO_YYYYMMDD('2024-06-04')` → `20240604` | |
42 | | -| [TO_YYYYMMDDHH](to-yyyymmddhh.md) | 将日期格式化为 YYYYMMDDHH | `TO_YYYYMMDDHH('2024-06-04 12:30:45')` → `2024060412` | |
43 | | -| [TO_YYYYMMDDHHMMSS](to-yyyymmddhhmmss.md) | 将日期格式化为 YYYYMMDDHHMMSS | `TO_YYYYMMDDHHMMSS('2024-06-04 12:30:45')` → `20240604123045` | |
44 | | -| [DATE_FORMAT](date-format.md) | 根据格式字符串格式化日期 | `DATE_FORMAT('2024-06-04', '%Y-%m-%d')` → `'2024-06-04'` | |
| 33 | +| 函数 | 描述 | 示例 | |
| 34 | +|-------------------------------------------|------------------------------------|---------------------------------------------------------------| |
| 35 | +| [DATE](date.md) | 将值转换为 DATE 类型 | `DATE('2024-06-04')` → `2024-06-04` | |
| 36 | +| [TO_DATE](to-date.md) | 将字符串转换为 DATE 类型 | `TO_DATE('2024-06-04')` → `2024-06-04` | |
| 37 | +| [TO_DATETIME](to-datetime.md) | 将字符串转换为 DATETIME 类型 | `TO_DATETIME('2024-06-04 12:30:45')` → `2024-06-04 12:30:45` | |
| 38 | +| [TO_TIMESTAMP](to-timestamp.md) | 将字符串转换为 TIMESTAMP 类型 | `TO_TIMESTAMP('2024-06-04 12:30:45')` → `2024-06-04 12:30:45` | |
| 39 | +| [TO_UNIX_TIMESTAMP](to-unix-timestamp.md) | 将日期转换为 Unix 时间戳 | `TO_UNIX_TIMESTAMP('2024-06-04')` → `1717516800` | |
| 40 | +| [TO_YYYYMM](to-yyyymm.md) | 将日期格式化为 YYYYMM | `TO_YYYYMM('2024-06-04')` → `202406` | |
| 41 | +| [TO_YYYYMMDD](to-yyyymmdd.md) | 将日期格式化为 YYYYMMDD | `TO_YYYYMMDD('2024-06-04')` → `20240604` | |
| 42 | +| [TO_YYYYMMDDHH](to-yyyymmddhh.md) | 将日期格式化为 YYYYMMDDHH | `TO_YYYYMMDDHH('2024-06-04 12:30:45')` → `2024060412` | |
| 43 | +| [TO_YYYYMMDDHHMMSS](to-yyyymmddhhmmss.md) | 将日期格式化为 YYYYMMDDHHMMSS | `TO_YYYYMMDDHHMMSS('2024-06-04 12:30:45')` → `20240604123045` | |
| 44 | +| [DATE_FORMAT](date-format.md) | 按格式字符串格式化日期 | `DATE_FORMAT('2024-06-04', '%Y-%m-%d')` → `'2024-06-04'` | |
45 | 45 |
|
46 | | -## 日期和时间算术函数 |
| 46 | +## 日期与时间算术函数 |
47 | 47 |
|
48 | | -| 函数 | 描述 | 示例 | |
49 | | -|---|---|---| |
50 | | -| [DATE_ADD](date-add.md) | 向日期添加时间间隔 | `DATE_ADD(DAY, 7, '2024-06-04')` → `2024-06-11` | |
51 | | -| [DATE_SUB](date-sub.md) | 从日期减去时间间隔 | `DATE_SUB(MONTH, 1, '2024-06-04')` → `2024-05-04` | |
52 | | -| [ADD INTERVAL](addinterval.md) | 向日期添加时间间隔 | `'2024-06-04' + INTERVAL 1 DAY` → `2024-06-05` | |
53 | | -| [SUBTRACT INTERVAL](subtractinterval.md) | 从日期减去时间间隔 | `'2024-06-04' - INTERVAL 1 MONTH` → `2024-05-04` | |
54 | | -| [DATE_DIFF](date-diff.md) | 返回两个日期的差值 | `DATE_DIFF(DAY, '2024-06-01', '2024-06-04')` → `3` | |
55 | | -| [TIMESTAMP_DIFF](timestamp-diff.md) | 返回两个时间戳的差值 | `TIMESTAMP_DIFF(HOUR, '2024-06-04 10:00:00', '2024-06-04 15:00:00')` → `5` | |
56 | | -| [MONTHS_BETWEEN](months-between.md) | 返回两个日期的月数差 | `MONTHS_BETWEEN('2024-06-04', '2024-01-04')` → `5` | |
57 | | -| [DATE_BETWEEN](date-between.md) | 检查日期是否在指定范围内 | `DATE_BETWEEN('2024-06-04', '2024-06-01', '2024-06-10')` → `true` | |
58 | | -| [AGE](age.md) | 计算时间戳间或与当前时间的差值 | `AGE('2000-01-01'::TIMESTAMP, '1990-05-15'::TIMESTAMP)` → `9 years 7 months 17 days` | |
59 | | -| [ADD_MONTHS](add-months.md) | 添加月份并保留月末日期 | `ADD_MONTHS('2025-04-30',1)` → `2025-05-31` | |
| 48 | +| 函数 | 描述 | 示例 | |
| 49 | +|------------------------------------------|--------------------------------------------------------------|--------------------------------------------------------------------------------------| |
| 50 | +| [DATE_ADD](date-add.md) | 向日期添加时间间隔 | `DATE_ADD(DAY, 7, '2024-06-04')` → `2024-06-11` | |
| 51 | +| [DATE_SUB](date-sub.md) | 从日期减去时间间隔 | `DATE_SUB(MONTH, 1, '2024-06-04')` → `2024-05-04` | |
| 52 | +| [ADD INTERVAL](addinterval.md) | 向日期添加间隔 | `'2024-06-04' + INTERVAL 1 DAY` → `2024-06-05` | |
| 53 | +| [SUBTRACT INTERVAL](subtractinterval.md) | 从日期减去间隔 | `'2024-06-04' - INTERVAL 1 MONTH` → `2024-05-04` | |
| 54 | +| [DATE_DIFF](date-diff.md) | 返回两个日期之间的差值 | `DATE_DIFF(DAY, '2024-06-01', '2024-06-04')` → `3` | |
| 55 | +| [TIMESTAMP_DIFF](timestamp-diff.md) | 返回两个时间戳之间的差值 | `TIMESTAMP_DIFF(HOUR, '2024-06-04 10:00:00', '2024-06-04 15:00:00')` → `5` | |
| 56 | +| [MONTHS_BETWEEN](months-between.md) | 返回两个日期之间的月数 | `MONTHS_BETWEEN('2024-06-04', '2024-01-04')` → `5` | |
| 57 | +| [DATE_BETWEEN](date-between.md) | 检查日期是否介于另外两个日期之间 | `DATE_BETWEEN('2024-06-04', '2024-06-01', '2024-06-10')` → `true` | |
| 58 | +| [AGE](age.md) | 计算两个时间戳或时间戳与当前日期/时间之间的差值 | `AGE('2000-01-01'::TIMESTAMP, '1990-05-15'::TIMESTAMP)` → `9 years 7 months 17 days` | |
| 59 | +| [ADD_MONTHS](add-months.md) | 向日期添加月份,同时保留月末日期 | `ADD_MONTHS('2025-04-30',1)` → `2025-05-31` | |
60 | 60 |
|
61 | | -## 日期和时间截断函数 |
| 61 | +## 日期与时间截断函数 |
62 | 62 |
|
63 | | -| 函数 | 描述 | 示例 | |
64 | | -|----------|-------------|---------| |
65 | | -| [DATE_TRUNC](date-trunc.md) | 将时间戳截断到指定精度 | `DATE_TRUNC('month', '2024-06-04')` → `2024-06-01` | |
66 | | -| [TO_START_OF_DAY](to-start-of-day.md) | 返回一天的起始时间 | `TO_START_OF_DAY('2024-06-04 12:30:45')` → `2024-06-04 00:00:00` | |
67 | | -| [TO_START_OF_HOUR](to-start-of-hour.md) | 返回一小时的起始时间 | `TO_START_OF_HOUR('2024-06-04 12:30:45')` → `2024-06-04 12:00:00` | |
68 | | -| [TO_START_OF_MINUTE](to-start-of-minute.md) | 返回一分钟的起始时间 | `TO_START_OF_MINUTE('2024-06-04 12:30:45')` → `2024-06-04 12:30:00` | |
69 | | -| [TO_START_OF_MONTH](to-start-of-month.md) | 返回月份的起始日期 | `TO_START_OF_MONTH('2024-06-04')` → `2024-06-01` | |
70 | | -| [TO_START_OF_QUARTER](to-start-of-quarter.md) | 返回季度的起始日期 | `TO_START_OF_QUARTER('2024-06-04')` → `2024-04-01` | |
71 | | -| [TO_START_OF_YEAR](to-start-of-year.md) | 返回年份的起始日期 | `TO_START_OF_YEAR('2024-06-04')` → `2024-01-01` | |
72 | | -| [TO_START_OF_WEEK](to-start-of-week.md) | 返回一周的起始日期 | `TO_START_OF_WEEK('2024-06-04')` → `2024-06-03` | |
| 63 | +| 函数 | 描述 | 示例 | |
| 64 | +|-----------------------------------------------|--------------------------------------------------------|---------------------------------------------------------------------| |
| 65 | +| [DATE_TRUNC](date-trunc.md) | 将时间戳截断到指定精度 | `DATE_TRUNC('month', '2024-06-04')` → `2024-06-01` | |
| 66 | +| [TIME_SLICE](time-slice.md) | 将单个日期/时间戳值映射到日历对齐的间隔 | `TIME_SLICE('2024-06-04', 4, 'MONTH', 'START')` → `2024-05-01` | |
| 67 | +| [TO_START_OF_DAY](to-start-of-day.md) | 返回当天的起始时间 | `TO_START_OF_DAY('2024-06-04 12:30:45')` → `2024-06-04 00:00:00` | |
| 68 | +| [TO_START_OF_HOUR](to-start-of-hour.md) | 返回当前小时的起始时间 | `TO_START_OF_HOUR('2024-06-04 12:30:45')` → `2024-06-04 12:00:00` | |
| 69 | +| [TO_START_OF_MINUTE](to-start-of-minute.md) | 返回当前分钟的起始时间 | `TO_START_OF_MINUTE('2024-06-04 12:30:45')` → `2024-06-04 12:30:00` | |
| 70 | +| [TO_START_OF_MONTH](to-start-of-month.md) | 返回当月的第一天 | `TO_START_OF_MONTH('2024-06-04')` → `2024-06-01` | |
| 71 | +| [TO_START_OF_QUARTER](to-start-of-quarter.md) | 返回当季度的第一天 | `TO_START_OF_QUARTER('2024-06-04')` → `2024-04-01` | |
| 72 | +| [TO_START_OF_YEAR](to-start-of-year.md) | 返回当年的第一天 | `TO_START_OF_YEAR('2024-06-04')` → `2024-01-01` | |
| 73 | +| [TO_START_OF_WEEK](to-start-of-week.md) | 返回当周的第一天 | `TO_START_OF_WEEK('2024-06-04')` → `2024-06-03` | |
73 | 74 |
|
74 | | -## 日期和时间导航函数 |
| 75 | +## 日期与时间导航函数 |
75 | 76 |
|
76 | | -| 函数 | 描述 | 示例 | |
77 | | -|----------|-------------|---------| |
78 | | -| [LAST_DAY](last-day.md) | 返回月份的最后一天 | `LAST_DAY('2024-06-04')` → `2024-06-30` | |
79 | | -| [NEXT_DAY](next-day.md) | 返回下个指定周几的日期 | `NEXT_DAY('2024-06-04', 'SUNDAY')` → `2024-06-09` | |
80 | | -| [PREVIOUS_DAY](previous-day.md) | 返回上个指定周几的日期 | `PREVIOUS_DAY('2024-06-04', 'MONDAY')` → `2024-06-03` | |
| 77 | +| 函数 | 描述 | 示例 | |
| 78 | +|---------------------------------|--------------------------------------------|-------------------------------------------------------| |
| 79 | +| [LAST_DAY](last-day.md) | 返回月份的最后一天 | `LAST_DAY('2024-06-04')` → `2024-06-30` | |
| 80 | +| [NEXT_DAY](next-day.md) | 返回下一个指定星期几的日期 | `NEXT_DAY('2024-06-04', 'SUNDAY')` → `2024-06-09` | |
| 81 | +| [PREVIOUS_DAY](previous-day.md) | 返回上一个指定星期几的日期 | `PREVIOUS_DAY('2024-06-04', 'MONDAY')` → `2024-06-03` | |
81 | 82 |
|
82 | | -## 其他日期和时间函数 |
| 83 | +## 其他日期与时间函数 |
83 | 84 |
|
84 | | -| 函数 | 描述 | 示例 | |
85 | | -|----------|-------------|---------| |
86 | | -| [TIMEZONE](timezone.md) | 返回当前时区 | `TIMEZONE()` → `'UTC'` | |
87 | | -| [TIME_SLOT](time-slot.md) | 返回时间槽 | `TIME_SLOT('2024-06-04 12:30:45', 15, 'MINUTE')` → `2024-06-04 12:30:00` | |
| 85 | +| 函数 | 描述 | 示例 | |
| 86 | +|---------------------------|--------------|--------------------------------------------------------------------------| |
| 87 | +| [TIMEZONE](timezone.md) | 返回当前时区 | `TIMEZONE()` → `'UTC'` | |
| 88 | +| [TIME_SLOT](time-slot.md) | 返回时间槽 | `TIME_SLOT('2024-06-04 12:30:45', 15, 'MINUTE')` → `2024-06-04 12:30:00` | |
0 commit comments