This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 48fc0ae2bf8 [Fix](keywords) add composite time units to nonReserved
(#60775)
48fc0ae2bf8 is described below
commit 48fc0ae2bf8b0004a7dfa4f6ea166a1fc6a4413b
Author: linrrarity <[email protected]>
AuthorDate: Mon Feb 16 23:23:02 2026 +0800
[Fix](keywords) add composite time units to nonReserved (#60775)
### What problem does this PR solve?
Issue Number: close #xxx
Related PR: #60347
Problem Summary:
Before:
```text
Doris> select now() day_hour;
ERROR 1105 (HY000): errCode = 2, detailMessage =
extraneous input 'day_hour' expecting {<EOF>, ';'}(line 1, pos 13)
```
After:
```text
Doris> select now() day_hour;
+---------------------+
| day_hour |
+---------------------+
| 2026-02-16 02:31:36 |
+---------------------+
```
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
---
.../antlr4/org/apache/doris/nereids/DorisParser.g4 | 11 +
.../test_add_sub_union_type.groovy | 814 ++++++++++-----------
2 files changed, 418 insertions(+), 407 deletions(-)
diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index 2275048d1fa..4276eaf55b4 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -2030,6 +2030,10 @@ nonReserved
| DAYOFWEEK
| DAYOFYEAR
| DAYS
+ | DAY_HOUR
+ | DAY_MICROSECOND
+ | DAY_MINUTE
+ | DAY_SECOND
| DECIMAL
| DECIMALV2
| DECIMALV3
@@ -2094,6 +2098,9 @@ nonReserved
| HOTSPOT
| HOUR
| HOURS
+ | HOUR_MICROSECOND
+ | HOUR_MINUTE
+ | HOUR_SECOND
| HUB
| IDENTIFIED
| IGNORE
@@ -2150,6 +2157,8 @@ nonReserved
| MIN
| MINUTE
| MINUTES
+ | MINUTE_MICROSECOND
+ | MINUTE_SECOND
| MOD_ALT
| MODIFY
| MONTH
@@ -2243,6 +2252,7 @@ nonReserved
| SCHEDULER
| SCHEMA
| SECOND
+ | SECOND_MICROSECOND
| MICROSECOND
| SEPARATOR
| SERIALIZABLE
@@ -2312,5 +2322,6 @@ nonReserved
| WEEK
| WORK
| YEAR
+ | YEAR_MONTH
//--DEFAULT-NON-RESERVED-END
;
diff --git
a/regression-test/suites/nereids_p0/sql_functions/datetime_functions/test_add_sub_union_type.groovy
b/regression-test/suites/nereids_p0/sql_functions/datetime_functions/test_add_sub_union_type.groovy
index 924fa98528f..b7f12714a8d 100644
---
a/regression-test/suites/nereids_p0/sql_functions/datetime_functions/test_add_sub_union_type.groovy
+++
b/regression-test/suites/nereids_p0/sql_functions/datetime_functions/test_add_sub_union_type.groovy
@@ -50,49 +50,49 @@ suite('test_add_sub_union_type') {
"""
// YEAR_MONTH add/sub
- qt_year_month_add_1 """select date_add('2023-01-02', interval '1-2'
year_month)"""
- qt_year_month_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-0-3' year_month)"""
- qt_year_month_add_3 """select date_add(dt, interval iv_year_month
year_month) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_year_month_add_4 """select date_add(dt, interval iv_year_month
year_month) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_year_month_add_5 """select date_add('2023-01-31', interval '1-01'
year_month)"""
- qt_year_month_add_6 """select date_add('2023-02-28
12:00:00.000000+08:00', interval '1-01' year_month)"""
- qt_year_month_add_7 """select date_add('2023-03-31
12:00:00.000000+00:00', interval '1-01' year_month)"""
- qt_year_month_add_8 """select date_add('2023-04-30
12:00:00.000000-05:30', interval '1-01' year_month)"""
- qt_year_month_add_9 """select date_add('2023-01-02', interval '3&4'
year_month)"""
- qt_year_month_add_10 """select date_add('2023-01-02', interval '1--2'
year_month)"""
- qt_year_month_add_11 """select date_add('2023-01-02', interval '5'
year_month)"""
- qt_year_month_add_12 """select date_add('2023-01-02', interval
'1234-11' year_month)"""
- qt_year_month_add_13 """select date_add('2021-1-31', interval '1-1'
year_month)"""
- qt_year_month_add_14 """select date_add('2023-1-31', interval '1-1'
year_month)"""
+ qt_year_month_add_1 """select date_add('2023-01-02', interval '1-2'
year_month) AS year_month"""
+ qt_year_month_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-0-3' year_month) AS year_month"""
+ qt_year_month_add_3 """select date_add(dt, interval iv_year_month
year_month) AS year_month from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_year_month_add_4 """select date_add(dt, interval iv_year_month
year_month) AS year_month from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_year_month_add_5 """select date_add('2023-01-31', interval '1-01'
year_month) AS year_month"""
+ qt_year_month_add_6 """select date_add('2023-02-28
12:00:00.000000+08:00', interval '1-01' year_month) AS year_month"""
+ qt_year_month_add_7 """select date_add('2023-03-31
12:00:00.000000+00:00', interval '1-01' year_month) AS year_month"""
+ qt_year_month_add_8 """select date_add('2023-04-30
12:00:00.000000-05:30', interval '1-01' year_month) AS year_month"""
+ qt_year_month_add_9 """select date_add('2023-01-02', interval '3&4'
year_month) AS year_month"""
+ qt_year_month_add_10 """select date_add('2023-01-02', interval '1--2'
year_month) AS year_month"""
+ qt_year_month_add_11 """select date_add('2023-01-02', interval '5'
year_month) AS year_month"""
+ qt_year_month_add_12 """select date_add('2023-01-02', interval
'1234-11' year_month) AS year_month"""
+ qt_year_month_add_13 """select date_add('2021-1-31', interval '1-1'
year_month) AS year_month"""
+ qt_year_month_add_14 """select date_add('2023-1-31', interval '1-1'
year_month) AS year_month"""
test {
- sql """select date_add('2023-01-02', interval '1-2-3'
year_month)"""
+ sql """select date_add('2023-01-02', interval '1-2-3'
year_month) AS year_month"""
exception "Operation year_month_add of 1-2-3 is invalid"
}
- testFoldConst("select date_add('2023-01-02', interval '3&4'
year_month)")
- testFoldConst("select date_add('2023-01-02', interval '1--2'
year_month)")
- testFoldConst("select date_add('2023-01-02', interval '5' year_month)")
- testFoldConst("select date_add('2023-01-02', interval '1234-11'
year_month)")
- testFoldConst("select date_add('2023-05-31', interval '1-01'
year_month)")
- testFoldConst("select date_add('2023-06-30 12:00:00.000000+08:00',
interval '1-01' year_month)")
- testFoldConst("select date_add('2023-07-31 12:00:00.000000+00:00',
interval '1-01' year_month)")
- testFoldConst("select date_add('2023-08-31 12:00:00.000000-05:30',
interval '1-01' year_month)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'2-11' year_month)")
- testFoldConst("select date_add('2024-02-29 23:59:59', interval '-0-0'
year_month)")
- testFoldConst("select date_add('2021-1-31', interval '1-1' year_month)")
- testFoldConst("select date_add('2023-1-31', interval '1-1' year_month)")
-
- qt_year_month_sub_1 """select date_sub('2023-01-02', interval '1-2'
year_month)"""
- qt_year_month_sub_2 """select date_sub(dt, interval iv_year_month
year_month) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_year_month_sub_3 """select date_sub('2023-03-31', interval '0-11'
year_month)"""
- qt_year_month_sub_4 """select date_sub('2023-04-30
12:00:00.000000+08:00', interval '0-11' year_month)"""
- qt_year_month_sub_5 """select date_sub('2023-05-31
12:00:00.000000+00:00', interval '0-11' year_month)"""
- qt_year_month_sub_6 """select date_sub('2023-06-30
12:00:00.000000-05:30', interval '0-11' year_month)"""
- qt_year_month_sub_7 """select date_sub('2023-01-02', interval '5@6'
year_month)"""
- testFoldConst("select date_sub('2023-07-31 23:59:59', interval '0-6'
year_month)")
- testFoldConst("select date_sub('2023-08-31 12:00:00.000000+08:00',
interval '0-11' year_month)")
- testFoldConst("select date_sub('2023-09-30 12:00:00.000000+00:00',
interval '0-11' year_month)")
- testFoldConst("select date_sub('2023-10-31 12:00:00.000000-05:30',
interval '0-11' year_month)")
- testFoldConst("select date_sub('0001-01-01 00:00:00', interval '-10-00'
year_month)")
+ testFoldConst("select date_add('2023-01-02', interval '3&4' year_month)
AS year_month")
+ testFoldConst("select date_add('2023-01-02', interval '1--2'
year_month) AS year_month")
+ testFoldConst("select date_add('2023-01-02', interval '5' year_month)
AS year_month")
+ testFoldConst("select date_add('2023-01-02', interval '1234-11'
year_month) AS year_month")
+ testFoldConst("select date_add('2023-05-31', interval '1-01'
year_month) AS year_month")
+ testFoldConst("select date_add('2023-06-30 12:00:00.000000+08:00',
interval '1-01' year_month) AS year_month")
+ testFoldConst("select date_add('2023-07-31 12:00:00.000000+00:00',
interval '1-01' year_month) AS year_month")
+ testFoldConst("select date_add('2023-08-31 12:00:00.000000-05:30',
interval '1-01' year_month) AS year_month")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'2-11' year_month) AS year_month")
+ testFoldConst("select date_add('2024-02-29 23:59:59', interval '-0-0'
year_month) AS year_month")
+ testFoldConst("select date_add('2021-1-31', interval '1-1' year_month)
AS year_month")
+ testFoldConst("select date_add('2023-1-31', interval '1-1' year_month)
AS year_month")
+
+ qt_year_month_sub_1 """select date_sub('2023-01-02', interval '1-2'
year_month) AS year_month"""
+ qt_year_month_sub_2 """select date_sub(dt, interval iv_year_month
year_month) AS year_month from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_year_month_sub_3 """select date_sub('2023-03-31', interval '0-11'
year_month) AS year_month"""
+ qt_year_month_sub_4 """select date_sub('2023-04-30
12:00:00.000000+08:00', interval '0-11' year_month) AS year_month"""
+ qt_year_month_sub_5 """select date_sub('2023-05-31
12:00:00.000000+00:00', interval '0-11' year_month) AS year_month"""
+ qt_year_month_sub_6 """select date_sub('2023-06-30
12:00:00.000000-05:30', interval '0-11' year_month) AS year_month"""
+ qt_year_month_sub_7 """select date_sub('2023-01-02', interval '5@6'
year_month) AS year_month"""
+ testFoldConst("select date_sub('2023-07-31 23:59:59', interval '0-6'
year_month) AS year_month")
+ testFoldConst("select date_sub('2023-08-31 12:00:00.000000+08:00',
interval '0-11' year_month) AS year_month")
+ testFoldConst("select date_sub('2023-09-30 12:00:00.000000+00:00',
interval '0-11' year_month) AS year_month")
+ testFoldConst("select date_sub('2023-10-31 12:00:00.000000-05:30',
interval '0-11' year_month) AS year_month")
+ testFoldConst("select date_sub('0001-01-01 00:00:00', interval '-10-00'
year_month) AS year_month")
// YEAR_MONTH extract
qt_year_month_extract_1 """select extract(year_month from dt) from
test_add_sub_union_type order by dt"""
@@ -106,47 +106,47 @@ suite('test_add_sub_union_type') {
testFoldConst("select extract(year_month from '2023-01-02
03:04:05.123456-05:30')")
// DAY_HOUR add/sub
- qt_day_hour_add_1 """select date_add('2023-01-02 03:04:05', interval '1
2' day_hour)"""
- qt_day_hour_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03' day_hour)"""
- qt_day_hour_add_3 """select date_add(dt, interval iv_day_hour day_hour)
from test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
- qt_day_hour_add_4 """select date_add(dt, interval iv_day_hour day_hour)
from test_add_sub_union_type where dt='2024-02-29 10:00:00.000000'"""
- qt_day_hour_add_5 """select date_add('2023-01-02 03:04:05', interval
'7&8' day_hour)"""
- qt_day_hour_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1@@2' day_hour)"""
- qt_day_hour_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '12' day_hour)"""
- qt_day_hour_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23' day_hour)"""
- qt_day_hour_add_9 """select date_add('2023-02-28', interval '1 10'
day_hour)"""
- qt_day_hour_add_10 """select date_add('2023-03-31 01:00:00+08:00',
interval '1 10' day_hour)"""
- qt_day_hour_add_11 """select date_add('2023-04-30 01:00:00+00:00',
interval '1 10' day_hour)"""
- qt_day_hour_add_12 """select date_add('2023-05-31 01:00:00-05:30',
interval '1 10' day_hour)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8'
day_hour)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1@@2' day_hour)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'12' day_hour)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23' day_hour)")
- testFoldConst("select date_add('2023-06-30 23:00:00', interval '2 10'
day_hour)")
- testFoldConst("select date_add('2023-07-31 23:00:00', interval '-0 00'
day_hour)")
- testFoldConst("select date_add('2023-08-31', interval '1 10' day_hour)")
- testFoldConst("select date_add('2023-09-30 01:00:00+08:00', interval '1
10' day_hour)")
- testFoldConst("select date_add('2023-10-31 01:00:00+00:00', interval '1
10' day_hour)")
- testFoldConst("select date_add('2023-11-30 01:00:00-05:30', interval '1
10' day_hour)")
+ qt_day_hour_add_1 """select date_add('2023-01-02 03:04:05', interval '1
2' day_hour) AS day_hour"""
+ qt_day_hour_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03' day_hour) AS day_hour"""
+ qt_day_hour_add_3 """select date_add(dt, interval iv_day_hour day_hour)
AS day_hour from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_hour_add_4 """select date_add(dt, interval iv_day_hour day_hour)
AS day_hour from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_day_hour_add_5 """select date_add('2023-01-02 03:04:05', interval
'7&8' day_hour) AS day_hour"""
+ qt_day_hour_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1@@2' day_hour) AS day_hour"""
+ qt_day_hour_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '12' day_hour) AS day_hour"""
+ qt_day_hour_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23' day_hour) AS day_hour"""
+ qt_day_hour_add_9 """select date_add('2023-02-28', interval '1 10'
day_hour) AS day_hour"""
+ qt_day_hour_add_10 """select date_add('2023-03-31 01:00:00+08:00',
interval '1 10' day_hour) AS day_hour"""
+ qt_day_hour_add_11 """select date_add('2023-04-30 01:00:00+00:00',
interval '1 10' day_hour) AS day_hour"""
+ qt_day_hour_add_12 """select date_add('2023-05-31 01:00:00-05:30',
interval '1 10' day_hour) AS day_hour"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8'
day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1@@2' day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'12' day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23' day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-06-30 23:00:00', interval '2 10'
day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-07-31 23:00:00', interval '-0 00'
day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-08-31', interval '1 10' day_hour)
AS day_hour")
+ testFoldConst("select date_add('2023-09-30 01:00:00+08:00', interval '1
10' day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-10-31 01:00:00+00:00', interval '1
10' day_hour) AS day_hour")
+ testFoldConst("select date_add('2023-11-30 01:00:00-05:30', interval '1
10' day_hour) AS day_hour")
test {
- sql """select date_add('2023-01-02 03:04:05', interval '1 2 3
4' day_hour)"""
+ sql """select date_add('2023-01-02 03:04:05', interval '1 2 3
4' day_hour) AS day_hour"""
exception "Operation day_hour_add of"
}
- qt_day_hour_sub_1 """select date_sub('2023-01-02 03:04:05', interval '1
2' day_hour)"""
- qt_day_hour_sub_2 """select date_sub(dt, interval iv_day_hour day_hour)
from test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
- qt_day_hour_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'9@10' day_hour)"""
- qt_day_hour_sub_4 """select date_sub('2023-11-30', interval '1 10'
day_hour)"""
- qt_day_hour_sub_5 """select date_sub('2023-10-31 01:00:00+08:00',
interval '1 10' day_hour)"""
- qt_day_hour_sub_6 """select date_sub('2023-09-30 01:00:00+00:00',
interval '1 10' day_hour)"""
- qt_day_hour_sub_7 """select date_sub('2023-08-31 01:00:00-05:30',
interval '1 10' day_hour)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval '9@10'
day_hour)")
- testFoldConst("select date_sub('2023-06-30 23:00:00', interval '2 10'
day_hour)")
- testFoldConst("select date_sub('2023-07-31 23:00:00', interval '000
000' day_hour)")
- testFoldConst("select date_sub('2023-08-31', interval '1 10' day_hour)")
- testFoldConst("select date_sub('2022-12-31 01:00:00+08:00',
interval '1 10' day_hour)")
- testFoldConst("select date_sub('2022-12-31 01:00:00+00:00',
interval '1 10' day_hour)")
-testFoldConst("select date_sub('2022-12-31 01:00:00-05:30', interval '1 10'
day_hour)")
+ qt_day_hour_sub_1 """select date_sub('2023-01-02 03:04:05', interval '1
2' day_hour) AS day_hour"""
+ qt_day_hour_sub_2 """select date_sub(dt, interval iv_day_hour day_hour)
AS day_hour from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_hour_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'9@10' day_hour) AS day_hour"""
+ qt_day_hour_sub_4 """select date_sub('2023-11-30', interval '1 10'
day_hour) AS day_hour"""
+ qt_day_hour_sub_5 """select date_sub('2023-10-31 01:00:00+08:00',
interval '1 10' day_hour) AS day_hour"""
+ qt_day_hour_sub_6 """select date_sub('2023-09-30 01:00:00+00:00',
interval '1 10' day_hour) AS day_hour"""
+ qt_day_hour_sub_7 """select date_sub('2023-08-31 01:00:00-05:30',
interval '1 10' day_hour) AS day_hour"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval '9@10'
day_hour) AS day_hour")
+ testFoldConst("select date_sub('2023-06-30 23:00:00', interval '2 10'
day_hour) AS day_hour")
+ testFoldConst("select date_sub('2023-07-31 23:00:00', interval '000
000' day_hour) AS day_hour")
+ testFoldConst("select date_sub('2023-08-31', interval '1 10' day_hour)
AS day_hour")
+ testFoldConst("select date_sub('2022-12-31 01:00:00+08:00',
interval '1 10' day_hour) AS day_hour")
+ testFoldConst("select date_sub('2022-12-31 01:00:00+00:00',
interval '1 10' day_hour) AS day_hour")
+testFoldConst("select date_sub('2022-12-31 01:00:00-05:30', interval '1 10'
day_hour) AS day_hour")
// DAY_HOUR extract
qt_day_hour_extract_1 """select extract(day_hour from dt) from
test_add_sub_union_type order by dt"""
@@ -160,47 +160,47 @@ testFoldConst("select date_sub('2022-12-31
01:00:00-05:30', interval '1 10' day_
testFoldConst("select extract(day_hour from '2023-01-02
03:04:05.123456-05:30')")
// DAY_MINUTE add/sub
- qt_day_minute_add_1 """select date_add('2023-01-02 03:04:05', interval
'1 02:03' day_minute)"""
- qt_day_minute_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03:04' day_minute)"""
- qt_day_minute_add_3 """select date_add(dt, interval iv_day_minute
day_minute) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_day_minute_add_4 """select date_add(dt, interval iv_day_minute
day_minute) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_day_minute_add_5 """select date_add('2023-01-02 03:04:05', interval
'3&04:05' day_minute)"""
- qt_day_minute_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::02**03' day_minute)"""
- qt_day_minute_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '30' day_minute)"""
- qt_day_minute_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23:59' day_minute)"""
- qt_day_minute_add_9 """select date_add('2023-02-28', interval '1 10:59'
day_minute)"""
- qt_day_minute_add_10 """select date_add('2023-03-31 01:00:00+08:00',
interval '1 10:59' day_minute)"""
- qt_day_minute_add_11 """select date_add('2023-04-30 01:00:00+00:00',
interval '1 10:59' day_minute)"""
- qt_day_minute_add_12 """select date_add('2023-05-31 01:00:00-05:30',
interval '1 10:59' day_minute)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval
'3&04:05' day_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03' day_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'30' day_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59' day_minute)")
- testFoldConst("select date_add('2023-06-30 23:59:59', interval '0
10:59' day_minute)")
- testFoldConst("select date_add('2023-07-31 23:59:59', interval '-1
00:00' day_minute)")
- testFoldConst("select date_add('2023-08-31', interval '1 10:59'
day_minute)")
- testFoldConst("select date_add('2023-09-30 01:00:00+08:00', interval '1
10:59' day_minute)")
- testFoldConst("select date_add('2023-10-31 01:00:00+00:00', interval '1
10:59' day_minute)")
- testFoldConst("select date_add('2023-11-30 01:00:00-05:30', interval '1
10:59' day_minute)")
+ qt_day_minute_add_1 """select date_add('2023-01-02 03:04:05', interval
'1 02:03' day_minute) AS day_minute"""
+ qt_day_minute_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03:04' day_minute) AS day_minute"""
+ qt_day_minute_add_3 """select date_add(dt, interval iv_day_minute
day_minute) AS day_minute from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_minute_add_4 """select date_add(dt, interval iv_day_minute
day_minute) AS day_minute from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_day_minute_add_5 """select date_add('2023-01-02 03:04:05', interval
'3&04:05' day_minute) AS day_minute"""
+ qt_day_minute_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::02**03' day_minute) AS day_minute"""
+ qt_day_minute_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '30' day_minute) AS day_minute"""
+ qt_day_minute_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23:59' day_minute) AS day_minute"""
+ qt_day_minute_add_9 """select date_add('2023-02-28', interval '1 10:59'
day_minute) AS day_minute"""
+ qt_day_minute_add_10 """select date_add('2023-03-31 01:00:00+08:00',
interval '1 10:59' day_minute) AS day_minute"""
+ qt_day_minute_add_11 """select date_add('2023-04-30 01:00:00+00:00',
interval '1 10:59' day_minute) AS day_minute"""
+ qt_day_minute_add_12 """select date_add('2023-05-31 01:00:00-05:30',
interval '1 10:59' day_minute) AS day_minute"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval
'3&04:05' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'30' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-06-30 23:59:59', interval '0
10:59' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-07-31 23:59:59', interval '-1
00:00' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-08-31', interval '1 10:59'
day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-09-30 01:00:00+08:00', interval '1
10:59' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-10-31 01:00:00+00:00', interval '1
10:59' day_minute) AS day_minute")
+ testFoldConst("select date_add('2023-11-30 01:00:00-05:30', interval '1
10:59' day_minute) AS day_minute")
test {
- sql """select date_add('2023-01-02 03:04:05', interval '1 2 3 4
5' day_minute)"""
+ sql """select date_add('2023-01-02 03:04:05', interval '1 2 3 4
5' day_minute) AS day_minute"""
exception "Operation day_minute_add of"
}
- qt_day_minute_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'1 02:03' day_minute)"""
- qt_day_minute_sub_2 """select date_sub(dt, interval iv_day_minute
day_minute) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_day_minute_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_minute)"""
- qt_day_minute_sub_4 """select date_sub('2023-11-30', interval '1 10:59'
day_minute)"""
- qt_day_minute_sub_5 """select date_sub('2023-10-31 01:00:00+08:00',
interval '1 10:59' day_minute)"""
- qt_day_minute_sub_6 """select date_sub('2023-09-30 01:00:00+00:00',
interval '1 10:59' day_minute)"""
- qt_day_minute_sub_7 """select date_sub('2023-08-31 01:00:00-05:30',
interval '1 10:59' day_minute)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_minute)")
- testFoldConst("select date_sub('2023-06-30 23:59:59', interval '0
10:59' day_minute)")
- testFoldConst("select date_sub('2023-07-31 23:59:59', interval '000
00:00' day_minute)")
- testFoldConst("select date_sub('2023-08-31', interval '1 10:59'
day_minute)")
- testFoldConst("select date_sub('2025-04-30 01:00:00+08:00', interval '1
10:59' day_minute)")
- testFoldConst("select date_sub('2025-05-31 01:00:00+00:00', interval '1
10:59' day_minute)")
-testFoldConst("select date_sub('2025-06-30 01:00:00-05:30', interval '1 10:59'
day_minute)")
+ qt_day_minute_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'1 02:03' day_minute) AS day_minute"""
+ qt_day_minute_sub_2 """select date_sub(dt, interval iv_day_minute
day_minute) AS day_minute from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_minute_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_minute) AS day_minute"""
+ qt_day_minute_sub_4 """select date_sub('2023-11-30', interval '1 10:59'
day_minute) AS day_minute"""
+ qt_day_minute_sub_5 """select date_sub('2023-10-31 01:00:00+08:00',
interval '1 10:59' day_minute) AS day_minute"""
+ qt_day_minute_sub_6 """select date_sub('2023-09-30 01:00:00+00:00',
interval '1 10:59' day_minute) AS day_minute"""
+ qt_day_minute_sub_7 """select date_sub('2023-08-31 01:00:00-05:30',
interval '1 10:59' day_minute) AS day_minute"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_minute) AS day_minute")
+ testFoldConst("select date_sub('2023-06-30 23:59:59', interval '0
10:59' day_minute) AS day_minute")
+ testFoldConst("select date_sub('2023-07-31 23:59:59', interval '000
00:00' day_minute) AS day_minute")
+ testFoldConst("select date_sub('2023-08-31', interval '1 10:59'
day_minute) AS day_minute")
+ testFoldConst("select date_sub('2025-04-30 01:00:00+08:00', interval '1
10:59' day_minute) AS day_minute")
+ testFoldConst("select date_sub('2025-05-31 01:00:00+00:00', interval '1
10:59' day_minute) AS day_minute")
+testFoldConst("select date_sub('2025-06-30 01:00:00-05:30', interval '1 10:59'
day_minute) AS day_minute")
// DAY_MINUTE extract
qt_day_minute_extract_1 """select extract(day_minute from dt) from
test_add_sub_union_type order by dt"""
@@ -214,48 +214,48 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(day_minute from '2023-01-02
03:04:05.123456-05:30')")
// DAY_SECOND add/sub
- qt_day_second_add_1 """select date_add('2023-01-02 03:04:05', interval
'1 02:03:04' day_second)"""
- qt_day_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03:04:05' day_second)"""
- qt_day_second_add_3 """select date_add(dt, interval iv_day_second
day_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_day_second_add_4 """select date_add(dt, interval iv_day_second
day_second) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_day_second_add_5 """select date_add(dt, interval c day_second) from
(select dt, '0 0:0:7' c from test_add_sub_union_type limit 1) t"""
- qt_day_second_add_6 """select date_add('2023-01-02 03:04:05', interval
'7&8:9' day_second)"""
- qt_day_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '1::02**03::04' day_second)"""
- qt_day_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '2:3:4' day_second)"""
- qt_day_second_add_9 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23:59:59' day_second)"""
- qt_day_second_add_10 """select date_add('2021-12-31', interval '1
10:20:30' day_second)"""
- qt_day_second_add_11 """select date_add('2021-11-30 01:00:00+08:00',
interval '1 10:20:30' day_second)"""
- qt_day_second_add_12 """select date_add('2021-10-31 01:00:00+00:00',
interval '1 10:20:30' day_second)"""
- qt_day_second_add_13 """select date_add('2021-09-30 01:00:00-05:30',
interval '1 10:20:30' day_second)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8:9'
day_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03::04' day_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'2:3:4' day_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59:59' day_second)")
- testFoldConst("select date_add('2021-11-30 23:59:50', interval '0
00:00:15' day_second)")
- testFoldConst("select date_add('2021-10-31 23:59:50', interval '-0
00:00:00' day_second)")
- testFoldConst("select date_add('2020-02-29', interval '1 10:20:30'
day_second)")
- testFoldConst("select date_add('2016-02-29 01:00:00+08:00', interval '1
10:20:30' day_second)")
- testFoldConst("select date_add('2024-01-02 01:00:00+00:00', interval '1
10:20:30' day_second)")
- testFoldConst("select date_add('2024-03-31 01:00:00-05:30', interval '1
10:20:30' day_second)")
+ qt_day_second_add_1 """select date_add('2023-01-02 03:04:05', interval
'1 02:03:04' day_second) AS day_second"""
+ qt_day_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-2 03:04:05' day_second) AS day_second"""
+ qt_day_second_add_3 """select date_add(dt, interval iv_day_second
day_second) AS day_second from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_second_add_4 """select date_add(dt, interval iv_day_second
day_second) AS day_second from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_day_second_add_5 """select date_add(dt, interval c day_second) AS
day_second from (select dt, '0 0:0:7' c from test_add_sub_union_type limit 1)
t"""
+ qt_day_second_add_6 """select date_add('2023-01-02 03:04:05', interval
'7&8:9' day_second) AS day_second"""
+ qt_day_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '1::02**03::04' day_second) AS day_second"""
+ qt_day_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '2:3:4' day_second) AS day_second"""
+ qt_day_second_add_9 """select date_add('2023-01-02 03:04:05.123456',
interval '999 23:59:59' day_second) AS day_second"""
+ qt_day_second_add_10 """select date_add('2021-12-31', interval '1
10:20:30' day_second) AS day_second"""
+ qt_day_second_add_11 """select date_add('2021-11-30 01:00:00+08:00',
interval '1 10:20:30' day_second) AS day_second"""
+ qt_day_second_add_12 """select date_add('2021-10-31 01:00:00+00:00',
interval '1 10:20:30' day_second) AS day_second"""
+ qt_day_second_add_13 """select date_add('2021-09-30 01:00:00-05:30',
interval '1 10:20:30' day_second) AS day_second"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8:9'
day_second) AS day_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03::04' day_second) AS day_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'2:3:4' day_second) AS day_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59:59' day_second) AS day_second")
+ testFoldConst("select date_add('2021-11-30 23:59:50', interval '0
00:00:15' day_second) AS day_second")
+ testFoldConst("select date_add('2021-10-31 23:59:50', interval '-0
00:00:00' day_second) AS day_second")
+ testFoldConst("select date_add('2020-02-29', interval '1 10:20:30'
day_second) AS day_second")
+ testFoldConst("select date_add('2016-02-29 01:00:00+08:00', interval '1
10:20:30' day_second) AS day_second")
+ testFoldConst("select date_add('2024-01-02 01:00:00+00:00', interval '1
10:20:30' day_second) AS day_second")
+ testFoldConst("select date_add('2024-03-31 01:00:00-05:30', interval '1
10:20:30' day_second) AS day_second")
test {
- sql """select date_add('2023-01-02 03:04:05', interval '1 2 3 4
5 6' day_second)"""
+ sql """select date_add('2023-01-02 03:04:05', interval '1 2 3 4
5 6' day_second) AS day_second"""
exception "Operation day_second_add of"
}
- qt_day_second_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'1 02:03:04' day_second)"""
- qt_day_second_sub_2 """select date_sub(dt, interval iv_day_second
day_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_day_second_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_second)"""
- qt_day_second_sub_4 """select date_sub('2019-02-28', interval '1
10:20:30' day_second)"""
- qt_day_second_sub_5 """select date_sub('2019-01-31 01:00:00+08:00',
interval '1 10:20:30' day_second)"""
- qt_day_second_sub_6 """select date_sub('2019-03-31 01:00:00+00:00',
interval '1 10:20:30' day_second)"""
- qt_day_second_sub_7 """select date_sub('2019-04-30 01:00:00-05:30',
interval '1 10:20:30' day_second)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_second)")
- testFoldConst("select date_sub('2018-12-31 23:59:50', interval '0
00:00:15' day_second)")
- testFoldConst("select date_sub('2018-11-30 23:59:50', interval '10
10:10:10' day_second)")
- testFoldConst("select date_sub('2022-02-28', interval '1 10:20:30'
day_second)")
- testFoldConst("select date_sub('2022-03-31 01:00:00+08:00', interval '1
10:20:30' day_second)")
- testFoldConst("select date_sub('2022-04-30 01:00:00+00:00', interval '1
10:20:30' day_second)")
- testFoldConst("select date_sub('2022-05-31 01:00:00-05:30', interval '1
10:20:30' day_second)")
+ qt_day_second_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'1 02:03:04' day_second) AS day_second"""
+ qt_day_second_sub_2 """select date_sub(dt, interval iv_day_second
day_second) AS day_second from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_day_second_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_second) AS day_second"""
+ qt_day_second_sub_4 """select date_sub('2019-02-28', interval '1
10:20:30' day_second) AS day_second"""
+ qt_day_second_sub_5 """select date_sub('2019-01-31 01:00:00+08:00',
interval '1 10:20:30' day_second) AS day_second"""
+ qt_day_second_sub_6 """select date_sub('2019-03-31 01:00:00+00:00',
interval '1 10:20:30' day_second) AS day_second"""
+ qt_day_second_sub_7 """select date_sub('2019-04-30 01:00:00-05:30',
interval '1 10:20:30' day_second) AS day_second"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval
'5@06:07' day_second) AS day_second")
+ testFoldConst("select date_sub('2018-12-31 23:59:50', interval '0
00:00:15' day_second) AS day_second")
+ testFoldConst("select date_sub('2018-11-30 23:59:50', interval '10
10:10:10' day_second) AS day_second")
+ testFoldConst("select date_sub('2022-02-28', interval '1 10:20:30'
day_second) AS day_second")
+ testFoldConst("select date_sub('2022-03-31 01:00:00+08:00', interval '1
10:20:30' day_second) AS day_second")
+ testFoldConst("select date_sub('2022-04-30 01:00:00+00:00', interval '1
10:20:30' day_second) AS day_second")
+ testFoldConst("select date_sub('2022-05-31 01:00:00-05:30', interval '1
10:20:30' day_second) AS day_second")
// DAY_SECOND extract
qt_day_second_extract_1 """select extract(day_second from dt) from
test_add_sub_union_type order by dt"""
@@ -269,49 +269,49 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(day_second from '2023-01-02
03:04:05.123456-05:30')")
// DAY_MICROSECOND add/sub
- qt_day_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '1 02:03:04.567890' day_microsecond)"""
- qt_day_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-0 00:00:00.000001' day_microsecond)"""
- qt_day_microsecond_add_3 """select date_add(dt, interval
iv_day_microsecond day_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_day_microsecond_add_4 """select date_add(dt, interval
iv_day_microsecond day_microsecond) from test_add_sub_union_type where
dt='2024-02-29 10:00:00.000000'"""
- qt_day_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '7&8:9!?6.123' day_microsecond)"""
- qt_day_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '1!2@3#4_5^' day_microsecond)"""
- qt_day_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1::02**03::04..5' day_microsecond)"""
- qt_day_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '1 2:3:4' day_microsecond)"""
- qt_day_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '999 23:59:59.999999' day_microsecond)"""
- qt_day_microsecond_add_10 """select date_add('2024-07-31', interval '0
10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_add_11 """select date_add('2024-08-31
01:00:00+08:00', interval '0 10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_add_12 """select date_add('2024-09-30
01:00:00+00:00', interval '0 10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_add_13 """select date_add('2024-10-31
01:00:00-05:30', interval '0 10:20:30.123456' day_microsecond)"""
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7&8:9!?6.123' day_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1!2@3#4_5^' day_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03::04..5' day_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1 2:3:4' day_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59:59.999999' day_microsecond)")
- testFoldConst("select date_add('2000-02-29 23:59:59.999999', interval
'0 00:00:00.000005' day_microsecond)")
- testFoldConst("select date_add('2004-02-29 23:59:59.123456', interval
'-0 00:00:00.000010' day_microsecond)")
- testFoldConst("select date_add('2025-12-31', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_add('2025-11-30 01:00:00+08:00', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_add('2026-01-01 01:00:00+00:00', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_add('2015-06-30 01:00:00-05:30', interval '0
10:20:30.123456' day_microsecond)")
+ qt_day_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '1 02:03:04.567890' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-0 00:00:00.000001' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_3 """select date_add(dt, interval
iv_day_microsecond day_microsecond) AS day_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_day_microsecond_add_4 """select date_add(dt, interval
iv_day_microsecond day_microsecond) AS day_microsecond from
test_add_sub_union_type where dt='2024-02-29 10:00:00.000000'"""
+ qt_day_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '7&8:9!?6.123' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '1!2@3#4_5^' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1::02**03::04..5' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '1 2:3:4' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '999 23:59:59.999999' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_10 """select date_add('2024-07-31', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_add_11 """select date_add('2024-08-31
01:00:00+08:00', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_12 """select date_add('2024-09-30
01:00:00+00:00', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_add_13 """select date_add('2024-10-31
01:00:00-05:30', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7&8:9!?6.123' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1!2@3#4_5^' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::02**03::04..5' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1 2:3:4' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'999 23:59:59.999999' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2000-02-29 23:59:59.999999', interval
'0 00:00:00.000005' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2004-02-29 23:59:59.123456', interval
'-0 00:00:00.000010' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2025-12-31', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2025-11-30 01:00:00+08:00', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2026-01-01 01:00:00+00:00', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_add('2015-06-30 01:00:00-05:30', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
test {
- sql """select date_add('2023-01-02 03:04:05.123456', interval
'1 2 3 4 5 6 7' day_microsecond)"""
+ sql """select date_add('2023-01-02 03:04:05.123456', interval
'1 2 3 4 5 6 7' day_microsecond) AS day_microsecond"""
exception "Operation day_microsecond_add of"
}
- qt_day_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '1 02:03:04.567890' day_microsecond)"""
- qt_day_microsecond_sub_2 """select date_sub(dt, interval
iv_day_microsecond day_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_day_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '6!5@4#3_2^!' day_microsecond)"""
- qt_day_microsecond_sub_4 """select date_sub('2017-02-28', interval '0
10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_sub_5 """select date_sub('2017-03-31
01:00:00+08:00', interval '0 10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_sub_6 """select date_sub('2017-04-30
01:00:00+00:00', interval '0 10:20:30.123456' day_microsecond)"""
- qt_day_microsecond_sub_7 """select date_sub('2017-05-31
01:00:00-05:30', interval '0 10:20:30.123456' day_microsecond)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'6!5@4#3_2^!' day_microsecond)")
- testFoldConst("select date_sub('2008-02-29 23:59:59.999999', interval
'0 00:00:00.000005' day_microsecond)")
- testFoldConst("select date_sub('0001-01-01 00:00:00.000001', interval
'0 00:00:00.000001' day_microsecond)")
- testFoldConst("select date_sub('2016-03-31', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_sub('2016-04-30 01:00:00+08:00', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_sub('2016-05-31 01:00:00+00:00', interval '0
10:20:30.123456' day_microsecond)")
- testFoldConst("select date_sub('2016-06-30 01:00:00-05:30', interval '0
10:20:30.123456' day_microsecond)")
+ qt_day_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '1 02:03:04.567890' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_sub_2 """select date_sub(dt, interval
iv_day_microsecond day_microsecond) AS day_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_day_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '6!5@4#3_2^!' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_sub_4 """select date_sub('2017-02-28', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond"""
+ qt_day_microsecond_sub_5 """select date_sub('2017-03-31
01:00:00+08:00', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_sub_6 """select date_sub('2017-04-30
01:00:00+00:00', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ qt_day_microsecond_sub_7 """select date_sub('2017-05-31
01:00:00-05:30', interval '0 10:20:30.123456' day_microsecond) AS
day_microsecond"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'6!5@4#3_2^!' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('2008-02-29 23:59:59.999999', interval
'0 00:00:00.000005' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('0001-01-01 00:00:00.000001', interval
'0 00:00:00.000001' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('2016-03-31', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('2016-04-30 01:00:00+08:00', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('2016-05-31 01:00:00+00:00', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
+ testFoldConst("select date_sub('2016-06-30 01:00:00-05:30', interval '0
10:20:30.123456' day_microsecond) AS day_microsecond")
// DAY_MICROSECOND extract
qt_day_microsecond_extract_1 """select extract(day_microsecond from dt)
from test_add_sub_union_type order by dt"""
@@ -325,47 +325,47 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(day_microsecond from '2023-01-02
03:04:05.123456-05:30')")
// HOUR_MINUTE add/sub
- qt_hour_minute_add_1 """select date_add('2023-01-02 03:04:05', interval
'2:30' hour_minute)"""
- qt_hour_minute_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-0:45' hour_minute)"""
- qt_hour_minute_add_3 """select date_add(dt, interval iv_hour_minute
hour_minute) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_hour_minute_add_4 """select date_add(dt, interval iv_hour_minute
hour_minute) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_hour_minute_add_5 """select date_add('2023-01-02 03:04:05', interval
'3&45' hour_minute)"""
- qt_hour_minute_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2' hour_minute)"""
- qt_hour_minute_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '5' hour_minute)"""
- qt_hour_minute_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '1000:59' hour_minute)"""
- qt_hour_minute_add_9 """select date_add('2018-01-31', interval '10:59'
hour_minute)"""
- qt_hour_minute_add_10 """select date_add('2018-02-28 01:00:00+08:00',
interval '10:59' hour_minute)"""
- qt_hour_minute_add_11 """select date_add('2018-03-31 01:00:00+00:00',
interval '10:59' hour_minute)"""
- qt_hour_minute_add_12 """select date_add('2018-04-30 01:00:00-05:30',
interval '10:59' hour_minute)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval '3&45'
hour_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2' hour_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5' hour_minute)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1000:59' hour_minute)")
- testFoldConst("select date_add('2019-05-31 23:59:59', interval '10:59'
hour_minute)")
- testFoldConst("select date_add('2019-06-30 23:59:59', interval '-00:00'
hour_minute)")
- testFoldConst("select date_add('2019-07-31', interval '10:59'
hour_minute)")
- testFoldConst("select date_add('2019-12-01 01:00:00+08:00', interval
'10:59' hour_minute)")
- testFoldConst("select date_add('2020-02-29 01:00:00+00:00', interval
'10:59' hour_minute)")
- testFoldConst("select date_add('2020-03-31 01:00:00-05:30', interval
'10:59' hour_minute)")
+ qt_hour_minute_add_1 """select date_add('2023-01-02 03:04:05', interval
'2:30' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-0:45' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_3 """select date_add(dt, interval iv_hour_minute
hour_minute) AS hour_minute from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_hour_minute_add_4 """select date_add(dt, interval iv_hour_minute
hour_minute) AS hour_minute from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_hour_minute_add_5 """select date_add('2023-01-02 03:04:05', interval
'3&45' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '5' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '1000:59' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_9 """select date_add('2018-01-31', interval '10:59'
hour_minute) AS hour_minute"""
+ qt_hour_minute_add_10 """select date_add('2018-02-28 01:00:00+08:00',
interval '10:59' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_11 """select date_add('2018-03-31 01:00:00+00:00',
interval '10:59' hour_minute) AS hour_minute"""
+ qt_hour_minute_add_12 """select date_add('2018-04-30 01:00:00-05:30',
interval '10:59' hour_minute) AS hour_minute"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval '3&45'
hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2' hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5' hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1000:59' hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2019-05-31 23:59:59', interval '10:59'
hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2019-06-30 23:59:59', interval '-00:00'
hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2019-07-31', interval '10:59'
hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2019-12-01 01:00:00+08:00', interval
'10:59' hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2020-02-29 01:00:00+00:00', interval
'10:59' hour_minute) AS hour_minute")
+ testFoldConst("select date_add('2020-03-31 01:00:00-05:30', interval
'10:59' hour_minute) AS hour_minute")
test {
- sql """select date_add('2023-01-02 03:04:05', interval '1:2:3'
hour_minute)"""
+ sql """select date_add('2023-01-02 03:04:05', interval '1:2:3'
hour_minute) AS hour_minute"""
exception "Operation hour_minute_add of"
}
- qt_hour_minute_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'2:30' hour_minute)"""
- qt_hour_minute_sub_2 """select date_sub(dt, interval iv_hour_minute
hour_minute) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_hour_minute_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'6@07' hour_minute)"""
- qt_hour_minute_sub_4 """select date_sub('2018-08-31', interval '10:59'
hour_minute)"""
- qt_hour_minute_sub_5 """select date_sub('2018-09-30 01:00:00+08:00',
interval '10:59' hour_minute)"""
- qt_hour_minute_sub_6 """select date_sub('2018-10-31 01:00:00+00:00',
interval '10:59' hour_minute)"""
- qt_hour_minute_sub_7 """select date_sub('2018-11-30 01:00:00-05:30',
interval '10:59' hour_minute)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval '6@07'
hour_minute)")
- testFoldConst("select date_sub('2019-08-31 23:59:59', interval '10:59'
hour_minute)")
- testFoldConst("select date_sub('2019-09-30 23:59:59', interval '99:59'
hour_minute)")
- testFoldConst("select date_sub('2019-10-31', interval '10:59'
hour_minute)")
- testFoldConst("select date_sub('2019-11-30 01:00:00+08:00', interval
'10:59' hour_minute)")
- testFoldConst("select date_sub('2019-12-31 01:00:00+00:00', interval
'10:59' hour_minute)")
- testFoldConst("select date_sub('2020-01-31 01:00:00-05:30', interval
'10:59' hour_minute)")
+ qt_hour_minute_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'2:30' hour_minute) AS hour_minute"""
+ qt_hour_minute_sub_2 """select date_sub(dt, interval iv_hour_minute
hour_minute) AS hour_minute from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_hour_minute_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'6@07' hour_minute) AS hour_minute"""
+ qt_hour_minute_sub_4 """select date_sub('2018-08-31', interval '10:59'
hour_minute) AS hour_minute"""
+ qt_hour_minute_sub_5 """select date_sub('2018-09-30 01:00:00+08:00',
interval '10:59' hour_minute) AS hour_minute"""
+ qt_hour_minute_sub_6 """select date_sub('2018-10-31 01:00:00+00:00',
interval '10:59' hour_minute) AS hour_minute"""
+ qt_hour_minute_sub_7 """select date_sub('2018-11-30 01:00:00-05:30',
interval '10:59' hour_minute) AS hour_minute"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval '6@07'
hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2019-08-31 23:59:59', interval '10:59'
hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2019-09-30 23:59:59', interval '99:59'
hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2019-10-31', interval '10:59'
hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2019-11-30 01:00:00+08:00', interval
'10:59' hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2019-12-31 01:00:00+00:00', interval
'10:59' hour_minute) AS hour_minute")
+ testFoldConst("select date_sub('2020-01-31 01:00:00-05:30', interval
'10:59' hour_minute) AS hour_minute")
// HOUR_MINUTE extract
qt_hour_minute_extract_1 """select extract(hour_minute from dt) from
test_add_sub_union_type order by dt"""
@@ -379,47 +379,47 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(hour_minute from '2023-01-02
03:04:05.123456-05:30')")
// HOUR_SECOND add/sub
- qt_hour_second_add_1 """select date_add('2023-01-02 03:04:05', interval
'2:30:40' hour_second)"""
- qt_hour_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-1:00:05' hour_second)"""
- qt_hour_second_add_3 """select date_add(dt, interval iv_hour_second
hour_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_hour_second_add_4 """select date_add(dt, interval iv_hour_second
hour_second) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_hour_second_add_5 """select date_add('2023-01-02 03:04:05', interval
'7&8:9' hour_second)"""
- qt_hour_second_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2**3' hour_second)"""
- qt_hour_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '40' hour_second)"""
- qt_hour_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '5000:59:59' hour_second)"""
- qt_hour_second_add_9 """select date_add('2017-06-30', interval
'10:20:30' hour_second)"""
- qt_hour_second_add_10 """select date_add('2017-07-31 01:00:00+08:00',
interval '10:20:30' hour_second)"""
- qt_hour_second_add_11 """select date_add('2017-08-31 01:00:00+00:00',
interval '10:20:30' hour_second)"""
- qt_hour_second_add_12 """select date_add('2017-09-30 01:00:00-05:30',
interval '10:20:30' hour_second)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8:9'
hour_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2**3' hour_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'40' hour_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5000:59:59' hour_second)")
- testFoldConst("select date_add('2016-07-31 23:59:50', interval
'0:00:15' hour_second)")
- testFoldConst("select date_add('2016-06-30 23:59:50', interval
'-00:00:00' hour_second)")
- testFoldConst("select date_add('2016-05-31', interval '10:20:30'
hour_second)")
- testFoldConst("select date_add('2016-08-31 01:00:00+08:00', interval
'10:20:30' hour_second)")
- testFoldConst("select date_add('2016-09-30 01:00:00+00:00', interval
'10:20:30' hour_second)")
- testFoldConst("select date_add('2016-10-31 01:00:00-05:30', interval
'10:20:30' hour_second)")
+ qt_hour_second_add_1 """select date_add('2023-01-02 03:04:05', interval
'2:30:40' hour_second) AS hour_second"""
+ qt_hour_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-1:00:05' hour_second) AS hour_second"""
+ qt_hour_second_add_3 """select date_add(dt, interval iv_hour_second
hour_second) AS hour_second from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_hour_second_add_4 """select date_add(dt, interval iv_hour_second
hour_second) AS hour_second from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
+ qt_hour_second_add_5 """select date_add('2023-01-02 03:04:05', interval
'7&8:9' hour_second) AS hour_second"""
+ qt_hour_second_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2**3' hour_second) AS hour_second"""
+ qt_hour_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '40' hour_second) AS hour_second"""
+ qt_hour_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '5000:59:59' hour_second) AS hour_second"""
+ qt_hour_second_add_9 """select date_add('2017-06-30', interval
'10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_add_10 """select date_add('2017-07-31 01:00:00+08:00',
interval '10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_add_11 """select date_add('2017-08-31 01:00:00+00:00',
interval '10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_add_12 """select date_add('2017-09-30 01:00:00-05:30',
interval '10:20:30' hour_second) AS hour_second"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8:9'
hour_second) AS hour_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2**3' hour_second) AS hour_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'40' hour_second) AS hour_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5000:59:59' hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-07-31 23:59:50', interval
'0:00:15' hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-06-30 23:59:50', interval
'-00:00:00' hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-05-31', interval '10:20:30'
hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-08-31 01:00:00+08:00', interval
'10:20:30' hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-09-30 01:00:00+00:00', interval
'10:20:30' hour_second) AS hour_second")
+ testFoldConst("select date_add('2016-10-31 01:00:00-05:30', interval
'10:20:30' hour_second) AS hour_second")
test {
- sql """select date_add('2023-01-02 03:04:05', interval
'1:2:3:4' hour_second)"""
+ sql """select date_add('2023-01-02 03:04:05', interval
'1:2:3:4' hour_second) AS hour_second"""
exception "Operation hour_second_add of"
}
- qt_hour_second_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'2:30:40' hour_second)"""
- qt_hour_second_sub_2 """select date_sub(dt, interval iv_hour_second
hour_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_hour_second_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'6@7:8' hour_second)"""
- qt_hour_second_sub_4 """select date_sub('2015-12-31', interval
'10:20:30' hour_second)"""
- qt_hour_second_sub_5 """select date_sub('2015-11-30 01:00:00+08:00',
interval '10:20:30' hour_second)"""
- qt_hour_second_sub_6 """select date_sub('2015-10-31 01:00:00+00:00',
interval '10:20:30' hour_second)"""
- qt_hour_second_sub_7 """select date_sub('2015-09-30 01:00:00-05:30',
interval '10:20:30' hour_second)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval '6@7:8'
hour_second)")
- testFoldConst("select date_sub('2014-12-31 23:59:50', interval
'0:00:15' hour_second)")
- testFoldConst("select date_sub('2014-11-30 23:59:50', interval
'10*-10:10' hour_second)")
- testFoldConst("select date_sub('2014-10-31', interval '10:20:30'
hour_second)")
- testFoldConst("select date_sub('2014-09-30 01:00:00+08:00', interval
'10:20:30' hour_second)")
- testFoldConst("select date_sub('2014-08-31 01:00:00+00:00', interval
'10:20:30' hour_second)")
- testFoldConst("select date_sub('2014-07-31 01:00:00-05:30', interval
'10:20:30' hour_second)")
+ qt_hour_second_sub_1 """select date_sub('2023-01-02 03:04:05', interval
'2:30:40' hour_second) AS hour_second"""
+ qt_hour_second_sub_2 """select date_sub(dt, interval iv_hour_second
hour_second) AS hour_second from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
+ qt_hour_second_sub_3 """select date_sub('2023-01-02 03:04:05', interval
'6@7:8' hour_second) AS hour_second"""
+ qt_hour_second_sub_4 """select date_sub('2015-12-31', interval
'10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_sub_5 """select date_sub('2015-11-30 01:00:00+08:00',
interval '10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_sub_6 """select date_sub('2015-10-31 01:00:00+00:00',
interval '10:20:30' hour_second) AS hour_second"""
+ qt_hour_second_sub_7 """select date_sub('2015-09-30 01:00:00-05:30',
interval '10:20:30' hour_second) AS hour_second"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval '6@7:8'
hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-12-31 23:59:50', interval
'0:00:15' hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-11-30 23:59:50', interval
'10*-10:10' hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-10-31', interval '10:20:30'
hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-09-30 01:00:00+08:00', interval
'10:20:30' hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-08-31 01:00:00+00:00', interval
'10:20:30' hour_second) AS hour_second")
+ testFoldConst("select date_sub('2014-07-31 01:00:00-05:30', interval
'10:20:30' hour_second) AS hour_second")
// HOUR_SECOND extract
qt_hour_second_extract_1 """select extract(hour_second from dt) from
test_add_sub_union_type order by dt"""
@@ -433,47 +433,47 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(hour_second from '2023-01-02
03:04:05.123456-05:30')")
// HOUR_MICROSECOND add/sub
- qt_hour_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '2:30:40.123456' hour_microsecond)"""
- qt_hour_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-0:00:00.000001' hour_microsecond)"""
- qt_hour_microsecond_add_3 """select date_add(dt, interval
iv_hour_microsecond hour_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_hour_microsecond_add_4 """select date_add(dt, interval
iv_hour_microsecond hour_microsecond) from test_add_sub_union_type where
dt='2024-02-29 10:00:00.000000'"""
- qt_hour_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '1!2:3.000004' hour_microsecond)"""
- qt_hour_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '1::2**3..4' hour_microsecond)"""
- qt_hour_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '5.6' hour_microsecond)"""
- qt_hour_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '100000:59:59.999999' hour_microsecond)"""
- qt_hour_microsecond_add_9 """select date_add('2013-12-31', interval
'10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_add_10 """select date_add('2013-11-30
01:00:00+08:00', interval '10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_add_11 """select date_add('2013-10-31
01:00:00+00:00', interval '10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_add_12 """select date_add('2013-09-30
01:00:00-05:30', interval '10:20:30.123456' hour_microsecond)"""
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1!2:3.000004' hour_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2**3..4' hour_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5.6' hour_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'100000:59:59.999999' hour_microsecond)")
- testFoldConst("select date_add('2008-12-31 23:59:59.999999', interval
'0:00:00.000005' hour_microsecond)")
- testFoldConst("select date_add('2009-02-28 23:59:59.123456', interval
'-00:00:00.000009' hour_microsecond)")
- testFoldConst("select date_add('2012-08-31', interval '10:20:30.123456'
hour_microsecond)")
- testFoldConst("select date_add('2012-07-31 01:00:00+08:00', interval
'10:20:30.123456' hour_microsecond)")
- testFoldConst("select date_add('2012-06-30 01:00:00+00:00', interval
'10:20:30.123456' hour_microsecond)")
- testFoldConst("select date_add('2012-05-31 01:00:00-05:30', interval
'10:20:30.123456' hour_microsecond)")
+ qt_hour_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '2:30:40.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-0:00:00.000001' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_3 """select date_add(dt, interval
iv_hour_microsecond hour_microsecond) AS hour_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_hour_microsecond_add_4 """select date_add(dt, interval
iv_hour_microsecond hour_microsecond) AS hour_microsecond from
test_add_sub_union_type where dt='2024-02-29 10:00:00.000000'"""
+ qt_hour_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '1!2:3.000004' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '1::2**3..4' hour_microsecond) AS hour_microsecond"""
+ qt_hour_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '5.6' hour_microsecond) AS hour_microsecond"""
+ qt_hour_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '100000:59:59.999999' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_9 """select date_add('2013-12-31', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond"""
+ qt_hour_microsecond_add_10 """select date_add('2013-11-30
01:00:00+08:00', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_11 """select date_add('2013-10-31
01:00:00+00:00', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_add_12 """select date_add('2013-09-30
01:00:00-05:30', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1!2:3.000004' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2**3..4' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'5.6' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'100000:59:59.999999' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2008-12-31 23:59:59.999999', interval
'0:00:00.000005' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2009-02-28 23:59:59.123456', interval
'-00:00:00.000009' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2012-08-31', interval '10:20:30.123456'
hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2012-07-31 01:00:00+08:00', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2012-06-30 01:00:00+00:00', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_add('2012-05-31 01:00:00-05:30', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
test {
- sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2:3:4.5' hour_microsecond)"""
+ sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2:3:4.5' hour_microsecond) AS hour_microsecond"""
exception "Operation hour_microsecond_add of"
}
- qt_hour_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '2:30:40.123456' hour_microsecond)"""
- qt_hour_microsecond_sub_2 """select date_sub(dt, interval
iv_hour_microsecond hour_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_hour_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '9#8:7.000006' hour_microsecond)"""
- qt_hour_microsecond_sub_4 """select date_sub('2011-12-31', interval
'10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_sub_5 """select date_sub('2011-11-30
01:00:00+08:00', interval '10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_sub_6 """select date_sub('2011-10-31
01:00:00+00:00', interval '10:20:30.123456' hour_microsecond)"""
- qt_hour_microsecond_sub_7 """select date_sub('2011-09-30
01:00:00-05:30', interval '10:20:30.123456' hour_microsecond)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'9#8:7.000006' hour_microsecond)")
- testFoldConst("select date_sub('2007-12-31 23:59:59.999999', interval
'0:00:00.000005' hour_microsecond)")
- testFoldConst("select date_sub('2007-11-30 23:59:59.999999', interval
'99:59:59.999999' hour_microsecond)")
- testFoldConst("select date_sub('2010-08-31', interval '10:20:30.123456'
hour_microsecond)")
- testFoldConst("select date_sub('2010-07-31 01:00:00+08:00', interval
'10:20:30.123456' hour_microsecond)")
- testFoldConst("select date_sub('2010-06-30 01:00:00+00:00', interval
'10:20:30.123456' hour_microsecond)")
- testFoldConst("select date_sub('2010-05-31 01:00:00-05:30', interval
'10:20:30.123456' hour_microsecond)")
+ qt_hour_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '2:30:40.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_sub_2 """select date_sub(dt, interval
iv_hour_microsecond hour_microsecond) AS hour_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_hour_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '9#8:7.000006' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_sub_4 """select date_sub('2011-12-31', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond"""
+ qt_hour_microsecond_sub_5 """select date_sub('2011-11-30
01:00:00+08:00', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_sub_6 """select date_sub('2011-10-31
01:00:00+00:00', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ qt_hour_microsecond_sub_7 """select date_sub('2011-09-30
01:00:00-05:30', interval '10:20:30.123456' hour_microsecond) AS
hour_microsecond"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'9#8:7.000006' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2007-12-31 23:59:59.999999', interval
'0:00:00.000005' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2007-11-30 23:59:59.999999', interval
'99:59:59.999999' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2010-08-31', interval '10:20:30.123456'
hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2010-07-31 01:00:00+08:00', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2010-06-30 01:00:00+00:00', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
+ testFoldConst("select date_sub('2010-05-31 01:00:00-05:30', interval
'10:20:30.123456' hour_microsecond) AS hour_microsecond")
// HOUR_MICROSECOND extract
qt_hour_microsecond_extract_1 """select extract(hour_microsecond from
dt) from test_add_sub_union_type order by dt"""
@@ -487,47 +487,47 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(hour_microsecond from '2023-01-02
03:04:05.123456-05:30')")
// MINUTE_SECOND add/sub
- qt_minute_second_add_1 """select date_add('2023-01-02 03:04:05',
interval '45:50' minute_second)"""
- qt_minute_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-10:20' minute_second)"""
- qt_minute_second_add_3 """select date_add(dt, interval iv_minute_second
minute_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_minute_second_add_4 """select date_add(dt, interval iv_minute_second
minute_second) from test_add_sub_union_type where dt='2024-02-29
10:00:00.000000'"""
- qt_minute_second_add_5 """select date_add('2023-01-02 03:04:05',
interval '7&8' minute_second)"""
- qt_minute_second_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2' minute_second)"""
- qt_minute_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '30' minute_second)"""
- qt_minute_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '500000:59' minute_second)"""
- qt_minute_second_add_10 """select date_add('2009-12-31', interval
'10:20' minute_second)"""
- qt_minute_second_add_11 """select date_add('2009-11-30 01:00:00+08:00',
interval '10:20' minute_second)"""
- qt_minute_second_add_12 """select date_add('2009-10-31 01:00:00+00:00',
interval '10:20' minute_second)"""
- qt_minute_second_add_13 """select date_add('2009-09-30 01:00:00-05:30',
interval '10:20' minute_second)"""
- testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8'
minute_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2' minute_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'30' minute_second)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'500000:59' minute_second)")
- testFoldConst("select date_add('2008-11-30 23:59:50', interval '00:15'
minute_second)")
- testFoldConst("select date_add('2008-10-31 23:59:50', interval '-00:00'
minute_second)")
- testFoldConst("select date_add('2008-09-30', interval '10:20'
minute_second)")
- testFoldConst("select date_add('2008-08-31 01:00:00+08:00', interval
'10:20' minute_second)")
- testFoldConst("select date_add('2008-07-31 01:00:00+00:00', interval
'10:20' minute_second)")
- testFoldConst("select date_add('2008-06-30 01:00:00-05:30', interval
'10:20' minute_second)")
+ qt_minute_second_add_1 """select date_add('2023-01-02 03:04:05',
interval '45:50' minute_second) AS minute_second"""
+ qt_minute_second_add_2 """select date_add('2023-01-02 03:04:05.123456',
interval '-10:20' minute_second) AS minute_second"""
+ qt_minute_second_add_3 """select date_add(dt, interval iv_minute_second
minute_second) AS minute_second from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
+ qt_minute_second_add_4 """select date_add(dt, interval iv_minute_second
minute_second) AS minute_second from test_add_sub_union_type where
dt='2024-02-29 10:00:00.000000'"""
+ qt_minute_second_add_5 """select date_add('2023-01-02 03:04:05',
interval '7&8' minute_second) AS minute_second"""
+ qt_minute_second_add_6 """select date_add('2023-01-02 03:04:05.123456',
interval '1::2' minute_second) AS minute_second"""
+ qt_minute_second_add_7 """select date_add('2023-01-02 03:04:05.123456',
interval '30' minute_second) AS minute_second"""
+ qt_minute_second_add_8 """select date_add('2023-01-02 03:04:05.123456',
interval '500000:59' minute_second) AS minute_second"""
+ qt_minute_second_add_10 """select date_add('2009-12-31', interval
'10:20' minute_second) AS minute_second"""
+ qt_minute_second_add_11 """select date_add('2009-11-30 01:00:00+08:00',
interval '10:20' minute_second) AS minute_second"""
+ qt_minute_second_add_12 """select date_add('2009-10-31 01:00:00+00:00',
interval '10:20' minute_second) AS minute_second"""
+ qt_minute_second_add_13 """select date_add('2009-09-30 01:00:00-05:30',
interval '10:20' minute_second) AS minute_second"""
+ testFoldConst("select date_add('2023-01-02 03:04:05', interval '7&8'
minute_second) AS minute_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2' minute_second) AS minute_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'30' minute_second) AS minute_second")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'500000:59' minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-11-30 23:59:50', interval '00:15'
minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-10-31 23:59:50', interval '-00:00'
minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-09-30', interval '10:20'
minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-08-31 01:00:00+08:00', interval
'10:20' minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-07-31 01:00:00+00:00', interval
'10:20' minute_second) AS minute_second")
+ testFoldConst("select date_add('2008-06-30 01:00:00-05:30', interval
'10:20' minute_second) AS minute_second")
test {
- sql """select date_add('2023-01-02 03:04:05', interval '1:2:3'
minute_second)"""
+ sql """select date_add('2023-01-02 03:04:05', interval '1:2:3'
minute_second) AS minute_second"""
exception "Operation minute_second_add of"
}
- qt_minute_second_sub_1 """select date_sub('2023-01-02 03:04:05',
interval '45:50' minute_second)"""
- qt_minute_second_sub_2 """select date_sub(dt, interval iv_minute_second
minute_second) from test_add_sub_union_type where dt='2023-01-02
03:04:05.123456'"""
- qt_minute_second_sub_3 """select date_sub('2023-01-02 03:04:05',
interval '9@10' minute_second)"""
- qt_minute_second_sub_4 """select date_sub('2007-12-31', interval
'10:20' minute_second)"""
- qt_minute_second_sub_5 """select date_sub('2007-11-30 01:00:00+08:00',
interval '10:20' minute_second)"""
- qt_minute_second_sub_6 """select date_sub('2007-10-31 01:00:00+00:00',
interval '10:20' minute_second)"""
- qt_minute_second_sub_7 """select date_sub('2007-09-30 01:00:00-05:30',
interval '10:20' minute_second)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05', interval '9@10'
minute_second)")
- testFoldConst("select date_sub('2006-12-31 23:59:50', interval '00:15'
minute_second)")
- testFoldConst("select date_sub('2006-11-30 23:59:50', interval '99:59'
minute_second)")
- testFoldConst("select date_sub('2006-08-31', interval '10:20'
minute_second)")
- testFoldConst("select date_sub('2006-07-31 01:00:00+08:00', interval
'10:20' minute_second)")
- testFoldConst("select date_sub('2006-06-30 01:00:00+00:00', interval
'10:20' minute_second)")
- testFoldConst("select date_sub('2006-05-31 01:00:00-05:30', interval
'10:20' minute_second)")
+ qt_minute_second_sub_1 """select date_sub('2023-01-02 03:04:05',
interval '45:50' minute_second) AS minute_second"""
+ qt_minute_second_sub_2 """select date_sub(dt, interval iv_minute_second
minute_second) AS minute_second from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
+ qt_minute_second_sub_3 """select date_sub('2023-01-02 03:04:05',
interval '9@10' minute_second) AS minute_second"""
+ qt_minute_second_sub_4 """select date_sub('2007-12-31', interval
'10:20' minute_second) AS minute_second"""
+ qt_minute_second_sub_5 """select date_sub('2007-11-30 01:00:00+08:00',
interval '10:20' minute_second) AS minute_second"""
+ qt_minute_second_sub_6 """select date_sub('2007-10-31 01:00:00+00:00',
interval '10:20' minute_second) AS minute_second"""
+ qt_minute_second_sub_7 """select date_sub('2007-09-30 01:00:00-05:30',
interval '10:20' minute_second) AS minute_second"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05', interval '9@10'
minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-12-31 23:59:50', interval '00:15'
minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-11-30 23:59:50', interval '99:59'
minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-08-31', interval '10:20'
minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-07-31 01:00:00+08:00', interval
'10:20' minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-06-30 01:00:00+00:00', interval
'10:20' minute_second) AS minute_second")
+ testFoldConst("select date_sub('2006-05-31 01:00:00-05:30', interval
'10:20' minute_second) AS minute_second")
// MINUTE_SECOND extract
qt_minute_second_extract_1 """select extract(minute_second from dt)
from test_add_sub_union_type order by dt"""
@@ -541,49 +541,49 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(minute_second from '2023-01-02
03:04:05.123456-05:30')")
// MINUTE_MICROSECOND add/sub
- qt_minute_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '45:50.123456' minute_microsecond)"""
- qt_minute_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-10:20.000020' minute_microsecond)"""
- qt_minute_microsecond_add_3 """select date_add(dt, interval
iv_minute_microsecond minute_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_minute_microsecond_add_4 """select date_add(dt, interval
iv_minute_microsecond minute_microsecond) from test_add_sub_union_type where
dt='2024-02-29 10:00:00.000000'"""
- qt_minute_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '3:4,56' minute_microsecond)"""
- qt_minute_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '7&8.009' minute_microsecond)"""
- qt_minute_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1::2..3' minute_microsecond)"""
- qt_minute_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '9.8' minute_microsecond)"""
- qt_minute_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '700000:59.999999' minute_microsecond)"""
- qt_minute_microsecond_add_10 """select date_add('2007-12-30', interval
'10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_add_11 """select date_add('2007-11-30
01:00:00+08:00', interval '10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_add_12 """select date_add('2007-10-31
01:00:00+00:00', interval '10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_add_13 """select date_add('2007-09-30
01:00:00-05:30', interval '10:20.123456' minute_microsecond)"""
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'3:4,56' minute_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7&8.009' minute_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2..3' minute_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'9.8' minute_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'700000:59.999999' minute_microsecond)")
- testFoldConst("select date_add('2006-12-31 23:59:59.999999', interval
'00:00.000005' minute_microsecond)")
- testFoldConst("select date_add('2006-11-30 23:59:59.999999', interval
'-00:00.000001' minute_microsecond)")
- testFoldConst("select date_add('2006-09-30', interval '10:20.123456'
minute_microsecond)")
- testFoldConst("select date_add('2006-04-30 01:00:00+08:00', interval
'10:20.123456' minute_microsecond)")
- testFoldConst("select date_add('2006-03-31 01:00:00+00:00', interval
'10:20.123456' minute_microsecond)")
- testFoldConst("select date_add('2006-02-28 01:00:00-05:30', interval
'10:20.123456' minute_microsecond)")
+ qt_minute_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '45:50.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-10:20.000020' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_3 """select date_add(dt, interval
iv_minute_microsecond minute_microsecond) AS minute_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_minute_microsecond_add_4 """select date_add(dt, interval
iv_minute_microsecond minute_microsecond) AS minute_microsecond from
test_add_sub_union_type where dt='2024-02-29 10:00:00.000000'"""
+ qt_minute_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '3:4,56' minute_microsecond) AS minute_microsecond"""
+ qt_minute_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '7&8.009' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1::2..3' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '9.8' minute_microsecond) AS minute_microsecond"""
+ qt_minute_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '700000:59.999999' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_10 """select date_add('2007-12-30', interval
'10:20.123456' minute_microsecond) AS minute_microsecond"""
+ qt_minute_microsecond_add_11 """select date_add('2007-11-30
01:00:00+08:00', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_12 """select date_add('2007-10-31
01:00:00+00:00', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_add_13 """select date_add('2007-09-30
01:00:00-05:30', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'3:4,56' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7&8.009' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1::2..3' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'9.8' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'700000:59.999999' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-12-31 23:59:59.999999', interval
'00:00.000005' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-11-30 23:59:59.999999', interval
'-00:00.000001' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-09-30', interval '10:20.123456'
minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-04-30 01:00:00+08:00', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-03-31 01:00:00+00:00', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_add('2006-02-28 01:00:00-05:30', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
test {
- sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2:3.4' minute_microsecond)"""
+ sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2:3.4' minute_microsecond) AS minute_microsecond"""
exception "Operation minute_microsecond_add of"
}
- qt_minute_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '45:50.123456' minute_microsecond)"""
- qt_minute_microsecond_sub_2 """select date_sub(dt, interval
iv_minute_microsecond minute_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_minute_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '[email protected]' minute_microsecond)"""
- qt_minute_microsecond_sub_4 """select date_sub('2005-12-31', interval
'10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_sub_5 """select date_sub('2005-11-30
01:00:00+08:00', interval '10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_sub_6 """select date_sub('2005-10-31
01:00:00+00:00', interval '10:20.123456' minute_microsecond)"""
- qt_minute_microsecond_sub_7 """select date_sub('2005-09-30
01:00:00-05:30', interval '10:20.123456' minute_microsecond)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'[email protected]' minute_microsecond)")
- testFoldConst("select date_sub('2005-08-31 23:59:59.999999', interval
'00:00.000005' minute_microsecond)")
- testFoldConst("select date_sub('2005-07-31 23:59:59.123456', interval
'00:59.999999' minute_microsecond)")
- testFoldConst("select date_sub('2005-06-30', interval '10:20.123456'
minute_microsecond)")
- testFoldConst("select date_sub('2005-04-30 01:00:00+08:00', interval
'10:20.123456' minute_microsecond)")
- testFoldConst("select date_sub('2005-03-31 01:00:00+00:00', interval
'10:20.123456' minute_microsecond)")
- testFoldConst("select date_sub('2005-02-28 01:00:00-05:30', interval
'10:20.123456' minute_microsecond)")
+ qt_minute_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '45:50.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_sub_2 """select date_sub(dt, interval
iv_minute_microsecond minute_microsecond) AS minute_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_minute_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '[email protected]' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_sub_4 """select date_sub('2005-12-31', interval
'10:20.123456' minute_microsecond) AS minute_microsecond"""
+ qt_minute_microsecond_sub_5 """select date_sub('2005-11-30
01:00:00+08:00', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_sub_6 """select date_sub('2005-10-31
01:00:00+00:00', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ qt_minute_microsecond_sub_7 """select date_sub('2005-09-30
01:00:00-05:30', interval '10:20.123456' minute_microsecond) AS
minute_microsecond"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'[email protected]' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-08-31 23:59:59.999999', interval
'00:00.000005' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-07-31 23:59:59.123456', interval
'00:59.999999' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-06-30', interval '10:20.123456'
minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-04-30 01:00:00+08:00', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-03-31 01:00:00+00:00', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
+ testFoldConst("select date_sub('2005-02-28 01:00:00-05:30', interval
'10:20.123456' minute_microsecond) AS minute_microsecond")
// MINUTE_MICROSECOND extract
qt_minute_microsecond_extract_1 """select extract(minute_microsecond
from dt) from test_add_sub_union_type order by dt"""
@@ -597,39 +597,39 @@ testFoldConst("select date_sub('2025-06-30
01:00:00-05:30', interval '1 10:59' d
testFoldConst("select extract(minute_microsecond from '2023-01-02
03:04:05.123456-05:30')")
// SECOND_MICROSECOND add/sub
- qt_second_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '59.654321' second_microsecond)"""
- qt_second_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-5.000005' second_microsecond)"""
- qt_second_microsecond_add_3 """select date_add(dt, interval
iv_second_microsecond second_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_second_microsecond_add_4 """select date_add(dt, interval
iv_second_microsecond second_microsecond) from test_add_sub_union_type where
dt='2024-02-29 10:00:00.000000'"""
- qt_second_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '1,2' second_microsecond)"""
- qt_second_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '7!8' second_microsecond)"""
- qt_second_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1..2' second_microsecond)"""
- qt_second_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '7' second_microsecond)"""
- qt_second_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '100000000.999999' second_microsecond)"""
- qt_second_microsecond_add_10 """select date_add('2004-12-31', interval
'10.123456' second_microsecond)"""
- qt_second_microsecond_add_11 """select date_add('2004-11-30
01:00:00+08:00', interval '10.123456' second_microsecond)"""
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1,2' second_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7!8' second_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1..2' second_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7' second_microsecond)")
- testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'100000000.999999' second_microsecond)")
- testFoldConst("select date_add('2003-12-31 23:59:59.999999', interval
'0.000010' second_microsecond)")
- testFoldConst("select date_add('2003-11-30 23:59:59.999999', interval
'-0.000001' second_microsecond)")
- testFoldConst("select date_add('2003-10-31 01:00:00+08:00', interval
'10.123456' second_microsecond)")
+ qt_second_microsecond_add_1 """select date_add('2023-01-02
03:04:05.123456', interval '59.654321' second_microsecond) AS
second_microsecond"""
+ qt_second_microsecond_add_2 """select date_add('2023-01-02
03:04:05.123456', interval '-5.000005' second_microsecond) AS
second_microsecond"""
+ qt_second_microsecond_add_3 """select date_add(dt, interval
iv_second_microsecond second_microsecond) AS second_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_second_microsecond_add_4 """select date_add(dt, interval
iv_second_microsecond second_microsecond) AS second_microsecond from
test_add_sub_union_type where dt='2024-02-29 10:00:00.000000'"""
+ qt_second_microsecond_add_5 """select date_add('2023-01-02
03:04:05.123456', interval '1,2' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_add_6 """select date_add('2023-01-02
03:04:05.123456', interval '7!8' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_add_7 """select date_add('2023-01-02
03:04:05.123456', interval '1..2' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_add_8 """select date_add('2023-01-02
03:04:05.123456', interval '7' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_add_9 """select date_add('2023-01-02
03:04:05.123456', interval '100000000.999999' second_microsecond) AS
second_microsecond"""
+ qt_second_microsecond_add_10 """select date_add('2004-12-31', interval
'10.123456' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_add_11 """select date_add('2004-11-30
01:00:00+08:00', interval '10.123456' second_microsecond) AS
second_microsecond"""
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1,2' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7!8' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'1..2' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'7' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2023-01-02 03:04:05.123456', interval
'100000000.999999' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2003-12-31 23:59:59.999999', interval
'0.000010' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2003-11-30 23:59:59.999999', interval
'-0.000001' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_add('2003-10-31 01:00:00+08:00', interval
'10.123456' second_microsecond) AS second_microsecond")
test {
- sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2.3' second_microsecond)"""
+ sql """select date_add('2023-01-02 03:04:05.123456', interval
'1:2.3' second_microsecond) AS second_microsecond"""
exception "Operation second_microsecond_add of"
}
- qt_second_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '59.654321' second_microsecond)"""
- qt_second_microsecond_sub_2 """select date_sub(dt, interval
iv_second_microsecond second_microsecond) from test_add_sub_union_type where
dt='2023-01-02 03:04:05.123456'"""
- qt_second_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '9@8' second_microsecond)"""
- qt_second_microsecond_sub_4 """select date_sub('2002-12-31', interval
'10.123456' second_microsecond)"""
- qt_second_microsecond_sub_5 """select date_sub('2002-11-30
01:00:00+08:00', interval '10.123456' second_microsecond)"""
- testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'9@8' second_microsecond)")
- testFoldConst("select date_sub('2002-12-30 23:59:59.999999', interval
'0.000010' second_microsecond)")
- testFoldConst("select date_sub('0001-01-01 00:00:00.000000', interval
'0.000001' second_microsecond)")
- testFoldConst("select date_sub('2002-10-31 01:00:00+08:00', interval
'10.123456' second_microsecond)")
+ qt_second_microsecond_sub_1 """select date_sub('2023-01-02
03:04:05.123456', interval '59.654321' second_microsecond) AS
second_microsecond"""
+ qt_second_microsecond_sub_2 """select date_sub(dt, interval
iv_second_microsecond second_microsecond) AS second_microsecond from
test_add_sub_union_type where dt='2023-01-02 03:04:05.123456'"""
+ qt_second_microsecond_sub_3 """select date_sub('2023-01-02
03:04:05.123456', interval '9@8' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_sub_4 """select date_sub('2002-12-31', interval
'10.123456' second_microsecond) AS second_microsecond"""
+ qt_second_microsecond_sub_5 """select date_sub('2002-11-30
01:00:00+08:00', interval '10.123456' second_microsecond) AS
second_microsecond"""
+ testFoldConst("select date_sub('2023-01-02 03:04:05.123456', interval
'9@8' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_sub('2002-12-30 23:59:59.999999', interval
'0.000010' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_sub('0001-01-01 00:00:00.000000', interval
'0.000001' second_microsecond) AS second_microsecond")
+ testFoldConst("select date_sub('2002-10-31 01:00:00+08:00', interval
'10.123456' second_microsecond) AS second_microsecond")
// SECOND_MICROSECOND extract
qt_second_microsecond_extract_1 """select extract(second_microsecond
from dt) from test_add_sub_union_type order by dt"""
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]