Skip to content

Commit bfb98f2

Browse files
authored
fix: date_add/sub need respect timezone (#16721)
Before fix: ```sql :) select version(); SELECT version() โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ version() โ”‚ โ”‚ String โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Databend Query v1.2.574-nightly-bd380eeeea(rust-1.81.0-nightly-2024-10-29T08:01:25.246023988Z) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 1 row read in 0.074 sec. Processed 1 row, 1B (13.45 rows/s, 13B/s) :) select date_add(month,-1,now()),now(), date_add(month,1,now()); SELECT DATE_ADD(MONTH, INTERVAL (- 1), now()), now(), DATE_ADD(MONTH, INTERVAL 1, now()) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DATE_ADD(MONTH, - 1, now()) โ”‚ now() โ”‚ DATE_ADD(MONTH, 1, now()) โ”‚ โ”‚ Timestamp โ”‚ Timestamp โ”‚ Timestamp โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ 2024-09-30 00:12:04.481309 โ”‚ 2024-10-29 16:12:04.481309 โ”‚ 2024-11-30 00:12:04.481309 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 1 row read in 0.063 sec. Processed 1 row, 1B (15.76 rows/s, 15B/s) :) select date_sub(month,1,now()),now(),date_sub(month,-1,now()); SELECT DATE_SUB(MONTH, INTERVAL 1, now()), now(), DATE_SUB(MONTH, INTERVAL (- 1), now()) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DATE_SUB(MONTH, 1, now()) โ”‚ now() โ”‚ DATE_SUB(MONTH, - 1, now()) โ”‚ โ”‚ Timestamp โ”‚ Timestamp โ”‚ Timestamp โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ 2024-09-30 00:20:53.894801 โ”‚ 2024-10-29 16:20:53.894801 โ”‚ 2024-11-30 00:20:53.894801 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 1 row read in 0.045 sec. Processed 1 row, 1B (22.38 rows/s, 22B/s) ``` This pr: ```sql :) select date_add(month,-1,now()),now(), date_add(month,1,now()); SELECT DATE_ADD(MONTH, INTERVAL (- 1), now()), now(), DATE_ADD(MONTH, INTERVAL 1, now()) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DATE_ADD(MONTH, - 1, now()) โ”‚ now() โ”‚ DATE_ADD(MONTH, 1, now()) โ”‚ โ”‚ Timestamp โ”‚ Timestamp โ”‚ Timestamp โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ 2024-09-29 16:12:31.977 โ”‚ 2024-10-29 16:12:31.977 โ”‚ 2024-11-29 16:12:31.977 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 1 row read in 2.457 sec. Processed 1 row, 1B (0.41 row/s, 0B/s) :) select date_sub(month,1,now()),now(),date_sub(month,-1,now()); SELECT DATE_SUB(MONTH, INTERVAL 1, now()), now(), DATE_SUB(MONTH, INTERVAL (- 1), now()) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DATE_SUB(MONTH, 1, now()) โ”‚ now() โ”‚ DATE_SUB(MONTH, - 1, now()) โ”‚ โ”‚ Timestamp โ”‚ Timestamp โ”‚ Timestamp โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ 2024-09-29 16:20:31.223259 โ”‚ 2024-10-29 16:20:31.223259 โ”‚ 2024-11-29 16:20:31.223259 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ```
1 parent 0dbf170 commit bfb98f2

File tree

3 files changed

+167
-13
lines changed

3 files changed

+167
-13
lines changed

โ€Žsrc/query/expression/src/utils/date_helper.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,8 @@ macro_rules! impl_interval_year_month {
356356
let ts = us.to_timestamp(tz.tz);
357357
let new_ts = $op(ts.year(), ts.month(), ts.day(), delta.as_())?;
358358
let mut ts = NaiveDateTime::new(new_ts, ts.time())
359-
.and_utc()
359+
.and_local_timezone(tz.tz)
360+
.unwrap()
360361
.timestamp_micros();
361362
clamp_timestamp(&mut ts);
362363
Ok(ts)

โ€Žtests/sqllogictests/suites/query/functions/02_0012_function_datetimes_tz.test

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,19 +305,19 @@ statement ok
305305
set timezone = 'Asia/Shanghai'
306306

307307
query T
308-
select add_months(to_timestamp(1619822911999000), 1)
308+
select add_months(to_timestamp(1619822911999000), 1), to_timestamp(1619822911999000)
309309
----
310-
2021-06-01 14:48:31.999000
310+
2021-06-01 06:48:31.999000 2021-05-01 06:48:31.999000
311311

312312
query T
313313
select to_timestamp(1583013600000000)
314314
----
315315
2020-03-01 06:00:00.000000
316316

317317
query T
318-
select add_years(to_timestamp(1583013600000000), 1)
318+
select add_years(to_timestamp(1583013600000000), 1), to_timestamp(1583013600000000)
319319
----
320-
2021-03-01 14:00:00.000000
320+
2021-03-01 06:00:00.000000 2020-03-01 06:00:00.000000
321321

322322
statement ok
323323
set timezone= 'UTC';
@@ -678,6 +678,46 @@ set timezone='Asia/Shanghai';
678678
statement ok
679679
set enable_dst_hour_fix=1;
680680

681+
query T
682+
SELECT DATE_ADD(month, 1, '1941-03-15 00:00:00'::timestamp);
683+
----
684+
1941-04-15 01:00:00.000000
685+
686+
query T
687+
SELECT DATE_ADD(year, 1, '1941-03-15 00:00:00'::timestamp);
688+
----
689+
1942-03-15 01:00:00.000000
690+
691+
# format: -10-29 11:46:11.267412
692+
query T
693+
SELECT substr(DATE_ADD(year, 1, now())::String, 5)=substr(now()::String, 5);
694+
----
695+
1
696+
697+
# format: 2024
698+
query T
699+
SELECT substr(DATE_ADD(year, 1, now())::String, 1, 4)=substr(now()::String, 1, 4)+1;
700+
----
701+
1
702+
703+
# format: -29 11:47:46.704107
704+
query T
705+
SELECT substr(DATE_ADD(month, 1, now())::String, 8)=substr(now()::String, 8);
706+
----
707+
1
708+
709+
# format: 11
710+
query T
711+
SELECT substr(DATE_ADD(month, 1, now())::String, 6,2)=substr(now()::String, 6, 2)+1;
712+
----
713+
1
714+
715+
# format: 2024
716+
query T
717+
SELECT substr(DATE_ADD(month, 1, now())::String, 1,4)=substr(now()::String, 1,4);
718+
----
719+
1
720+
681721
query T
682722
select to_monday(to_date('1919-04-13','%Y-%m-%d'));
683723
----
@@ -689,7 +729,43 @@ select to_year(to_date('1919-04-13','%Y-%m-%d'));
689729
1919
690730

691731
statement ok
692-
unset timezone;
732+
unset enable_dst_hour_fix;
733+
734+
statement error 1006
735+
SELECT DATE_ADD(month, 1, '1941-03-15 00:00:00'::timestamp);
736+
737+
statement error 1006
738+
SELECT DATE_ADD(year, 1, '1941-03-15 00:00:00'::timestamp);
693739

694740
statement ok
695-
unset enable_dst_hour_fix;
741+
unset timezone;
742+
743+
# format: -10-29 11:46:11.267412
744+
query T
745+
SELECT substr(DATE_ADD(year, 1, now())::String, 5)=substr(now()::String, 5);
746+
----
747+
1
748+
749+
# format: 2024
750+
query T
751+
SELECT substr(DATE_ADD(year, 1, now())::String, 1, 4)=substr(now()::String, 1, 4)+1;
752+
----
753+
1
754+
755+
# format: -29 11:47:46.704107
756+
query T
757+
SELECT substr(DATE_ADD(month, 1, now())::String, 8)=substr(now()::String, 8);
758+
----
759+
1
760+
761+
# format: 11
762+
query T
763+
SELECT substr(DATE_ADD(month, 1, now())::String, 6,2)=substr(now()::String, 6, 2)+1;
764+
----
765+
1
766+
767+
# format: 2024
768+
query T
769+
SELECT substr(DATE_ADD(month, 1, now())::String, 1,4)=substr(now()::String, 1,4);
770+
----
771+
1

โ€Žtests/sqllogictests/suites/query/functions/02_0075_function_datetimes_tz.test

Lines changed: 83 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,19 +308,19 @@ statement ok
308308
set timezone = 'Asia/Shanghai'
309309

310310
query T
311-
select add_months(to_timestamp(1619822911999000), 1)
311+
select add_months(to_timestamp(1619822911999000), 1), to_timestamp(1619822911999000)
312312
----
313-
2021-06-01 14:48:31.999000
313+
2021-06-01 06:48:31.999000 2021-05-01 06:48:31.999000
314314

315315
query T
316316
select to_timestamp(1583013600000000)
317317
----
318318
2020-03-01 06:00:00.000000
319319

320320
query T
321-
select add_years(to_timestamp(1583013600000000), 1)
321+
select add_years(to_timestamp(1583013600000000), 1), to_timestamp(1583013600000000)
322322
----
323-
2021-03-01 14:00:00.000000
323+
2021-03-01 06:00:00.000000 2020-03-01 06:00:00.000000
324324

325325
statement ok
326326
set timezone= 'UTC';
@@ -720,11 +720,88 @@ select to_year(to_date('1919-04-13','%Y-%m-%d'));
720720
----
721721
1919
722722

723-
statement ok
724-
unset timezone;
723+
query T
724+
SELECT DATE_ADD(month, 1, '1941-03-15 00:00:00'::timestamp);
725+
----
726+
1941-04-15 01:00:00.000000
727+
728+
query T
729+
SELECT DATE_ADD(year, 1, '1941-03-15 00:00:00'::timestamp);
730+
----
731+
1942-03-15 01:00:00.000000
732+
733+
# format: -10-29 11:46:11.267412
734+
query T
735+
SELECT substr(DATE_ADD(year, 1, now())::String, 5)=substr(now()::String, 5);
736+
----
737+
1
738+
739+
# format: 2024
740+
query T
741+
SELECT substr(DATE_ADD(year, 1, now())::String, 1, 4)=substr(now()::String, 1, 4)+1;
742+
----
743+
1
744+
745+
# format: -29 11:47:46.704107
746+
query T
747+
SELECT substr(DATE_ADD(month, 1, now())::String, 8)=substr(now()::String, 8);
748+
----
749+
1
750+
751+
# format: 11
752+
query T
753+
SELECT substr(DATE_ADD(month, 1, now())::String, 6,2)=substr(now()::String, 6, 2)+1;
754+
----
755+
1
756+
757+
# format: 2024
758+
query T
759+
SELECT substr(DATE_ADD(month, 1, now())::String, 1,4)=substr(now()::String, 1,4);
760+
----
761+
1
725762

726763
statement ok
727764
unset enable_dst_hour_fix;
728765

766+
statement error 1006
767+
SELECT DATE_ADD(month, 1, '1941-03-15 00:00:00'::timestamp);
768+
769+
statement error 1006
770+
SELECT DATE_ADD(year, 1, '1941-03-15 00:00:00'::timestamp);
771+
772+
statement ok
773+
unset timezone;
774+
775+
# format: -10-29 11:46:11.267412
776+
query T
777+
SELECT substr(DATE_ADD(year, 1, now())::String, 5)=substr(now()::String, 5);
778+
----
779+
1
780+
781+
# format: 2024
782+
query T
783+
SELECT substr(DATE_ADD(year, 1, now())::String, 1, 4)=substr(now()::String, 1, 4)+1;
784+
----
785+
1
786+
787+
# format: -29 11:47:46.704107
788+
query T
789+
SELECT substr(DATE_ADD(month, 1, now())::String, 8)=substr(now()::String, 8);
790+
----
791+
1
792+
793+
# format: 11
794+
query T
795+
SELECT substr(DATE_ADD(month, 1, now())::String, 6,2)=substr(now()::String, 6, 2)+1;
796+
----
797+
1
798+
799+
# format: 2024
800+
query T
801+
SELECT substr(DATE_ADD(month, 1, now())::String, 1,4)=substr(now()::String, 1,4);
802+
----
803+
1
804+
805+
729806
statement ok
730807
unset enable_strict_datetime_parser;

0 commit comments

Comments
ย (0)