---- b compatibility case
set dolphin.b_compatibility_mode = off;
drop database if exists b_datetime_func_test3;
NOTICE: database "b_datetime_func_test3" does not exist, skipping
create database b_datetime_func_test3 encoding 'UTF-8' lc_collate 'C' lc_ctype 'C' dbcompatibility 'B';
\c b_datetime_func_test3
set datestyle = 'ISO,ymd';
set time zone "Asia/Shanghai";
create table test(funcname text, result text);
-- test datediff
-- 严格模式或者非严格模式都有值
-- 功能
insert into test values('datediff(''2021-11-12'', ''2021-11-13'')', datediff('2021-11-12','2021-11-13'));
insert into test values('datediff(''2021-01-01'', ''2021-12-31'')', datediff('2021-01-01','2021-12-31'));
insert into test values('datediff(''2021-12-31'', ''2022-01-01'')', datediff('2021-12-31','2022-01-01'));
insert into test values('datediff(''2021-12-31 12:12:12'', ''2022-01-01 10:10:10'')', datediff('2021-12-31 12:12:12','2022-01-01 10:10:10'));
-- 边界
insert into test values('datediff(''0000-01-01'', ''9999-12-31'')', datediff('0000-01-01', '9999-12-31'));
insert into test values('datediff(''9999-12-31'', ''0000-01-01'')', datediff('9999-12-31', '0000-01-01'));
-- 类型
insert into test values('datediff(date''2021-11-12'', date''2021-11-13'')', datediff(date'2021-11-13', date'2021-11-13'));
insert into test values('datediff(cast(''0021-12-31 12:12:12'' as date), cast(''2022-01-01 10:10:10'' as date))', datediff(cast('0021-12-31 12:12:12' as date), cast('2022-01-01 10:10:10' as date)));
insert into test values('datediff(cast(''2021-12-31 12:12:12'' as datetime), cast(''2022-01-01 10:10:10'' as datetime))', datediff(cast('2021-12-31 12:12:12' as datetime), cast('2022-01-01 10:10:10' as datetime)));
insert into test values('datediff(20211112, 20211113)', datediff(20211112, 20211113));
insert into test values('datediff(time''10:10:10'', ''2022-11-30'')', datediff(time'10:10:10', '2022-11-30'));
insert into test values('datediff(''2022-11-30'', time''10:10:10'')', datediff('2022-11-30', time'10:10:10'));
insert into test values('datediff(time''10:10:10'', time''10:10:10'')', datediff(time'10:10:10', time'10:10:10'));
insert into test values('datediff(101, ''2021-11-12'')', datediff(101, '2021-11-12'));
insert into test values('datediff(''2021-11-12'', 101)', datediff('2021-11-12', 101));
insert into test values('datediff(''2021-11-12'', 101)', datediff('2021-11-12', 101));
-- 特异
insert into test values('datediff(null, ''2021-11-12'')', datediff(null, '2021-11-12'));
insert into test values('datediff(''2021-11-12'', null)', datediff('2021-11-12', null));
insert into test values('datediff(null, null)', datediff(null, null));
-- 非严格模式,参数不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('datediff(''10000-01-01'', ''2021-11-12'')', datediff('10000-01-01', '2021-11-12'));
WARNING: Incorrect datetime value: "10000-01-01"
CONTEXT: referenced column: result
insert into test values('datediff(100000101, 20211112)', datediff(100000101, 20211112));
WARNING: Incorrect datetime value: "100000101"
CONTEXT: referenced column: result
insert into test values('datediff(99991231235959.9999995, 20211112)', datediff(99991231235959.9999995, 20211112));
WARNING: Truncated incorrect datetime value: "99991231235959.9999995"
CONTEXT: referenced column: result
insert into test values('datediff(9999999999999999999999, 20211112)', datediff(9999999999999999999999, 20211112));
WARNING: Incorrect datetime value: "9999999999999999999999"
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('datediff(''10000-01-01'', ''2021-11-12'')', datediff('10000-01-01', '2021-11-12'));
ERROR: Incorrect datetime value: "10000-01-01"
CONTEXT: referenced column: result
insert into test values('datediff(100000101, 20211112)', datediff(100000101, 20211112));
ERROR: Incorrect datetime value: "100000101"
CONTEXT: referenced column: result
insert into test values('datediff(99991231235959.9999995, 20211112)', datediff(99991231235959.9999995, 20211112));
ERROR: Truncated incorrect datetime value: "99991231235959.9999995"
CONTEXT: referenced column: result
insert into test values('datediff(9999999999999999999999, 20211112)', datediff(9999999999999999999999, 20211112));
ERROR: Incorrect datetime value: "9999999999999999999999"
CONTEXT: referenced column: result
-- test from_days
-- 严格模式或者非严格模式都有值
-- 功能
insert into test values('from_days(2000000)', from_days(2000000));
insert into test values('from_days(''2000000'')', from_days('2000000'));
-- 边界
insert into test values('from_days(366)', from_days(366));
insert into test values('from_days(3652499)', from_days(3652499));
insert into test values('from_days(''366'')', from_days('366'));
insert into test values('from_days(''3652499'')', from_days('3652499'));
-- 特异
insert into test values('from_days(null)', from_days(null));
insert into test values('from_days(-1)', from_days(-1));
insert into test values('from_days(0)', from_days(0));
insert into test values('from_days(365)', from_days(365));
insert into test values('from_days(1111111111111111111)', from_days(1111111111111111111));
insert into test values('from_days(''1111111111111111111'')', from_days('1111111111111111111'));
-- test timestampdiff
set dolphin.b_compatibility_mode = true;
-- 严格模式或者非严格模式都有值
-- 功能
insert into test values('timestampdiff(microsecond, ''0000-1-1 00:00:00'', ''0000-1-2'')', timestampdiff(microsecond, '0000-1-1 00:00:00', '0000-1-2'));
insert into test values('timestampdiff(second, ''0000-1-1 00:00:00'', ''0000-1-2'')', timestampdiff(second, '0000-1-1 00:00:00', '0000-1-2'));
insert into test values('timestampdiff(minute, ''0000-1-1 00:00:00'', ''0000-1-2'')', timestampdiff(minute, '0000-1-1 00:00:00', '0000-1-2'));
insert into test values('timestampdiff(hour, ''0000-1-1'', ''0000-1-2'')', timestampdiff(hour, '0000-1-1', '0000-1-2'));
insert into test values('timestampdiff(year, ''9999-12-31'', ''0000-12-31'')', timestampdiff(year, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(quarter, ''9999-12-31'', ''0000-12-31'')', timestampdiff(quarter, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(month, ''9999-12-31'', ''0000-12-31'')', timestampdiff(month, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(week, ''9999-12-31'', ''0000-12-31'')', timestampdiff(week, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(day, ''9999-12-31'', ''0000-12-31'')', timestampdiff(day, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(microsecond, time''-838:59:59'', time''838:59:59'')', timestampdiff(microsecond, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(second, time''-838:59:59'', time''838:59:59'')', timestampdiff(second, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(minute, time''-838:59:59'', time''838:59:59'')', timestampdiff(minute, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(hour, time''-838:59:59'', time''838:59:59'')', timestampdiff(hour, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(day, time''-838:59:59'', time''838:59:59'')', timestampdiff(day, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(month, time''-838:59:59'', time''838:59:59'')', timestampdiff(month, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(quarter, time''-838:59:59'', time''838:59:59'')', timestampdiff(quarter, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(year, time''-838:59:59'', time''838:59:59'')', timestampdiff(year, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(week, time''-838:59:59'', time''838:59:59'')', timestampdiff(week, time'-838:59:59', time'838:59:59'));
insert into test values('timestampdiff(microsecond, ''2022-9-12'', time''12:12:12'')', timestampdiff(microsecond, '2022-9-12', time'12:12:12'));
insert into test values('timestampdiff(microsecond, time''12:12:12'', ''2022-9-12'')', timestampdiff(microsecond, time'12:12:12', '2022-9-12'));
insert into test values('timestampdiff(microsecond, ''2022-9-12 12:12:12'', time''838:59:59'')', timestampdiff(microsecond, '2022-9-12 12:12:12', time'838:59:59'));
-- 边界
insert into test values('timestampdiff(microsecond, ''0000-1-1'', ''9999-12-31'')', timestampdiff(microsecond, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(second, ''0000-1-1'', ''9999-12-31'')', timestampdiff(second, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(minute, ''0000-1-1'', ''9999-12-31'')', timestampdiff(minute, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(hour, ''0000-1-1'', ''9999-12-31'')', timestampdiff(hour, '9999-12-31', '0000-12-31'));
insert into test values('timestampdiff(day, ''0000-1-1'', ''9999-12-31'')', timestampdiff(day, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(year, ''0000-1-1'', ''9999-12-31'')', timestampdiff(year, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(quarter, ''0000-1-1'', ''9999-12-31'')', timestampdiff(quarter, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(month, ''0000-1-1'', ''9999-12-31'')', timestampdiff(month, '0000-1-1', '9999-12-31'));
insert into test values('timestampdiff(week, ''0000-1-1'', ''9999-12-31'')', timestampdiff(week, '0000-1-1', '9999-12-31'));
-- 类型
insert into test values('timestampdiff(microsecond, cast(''2022-9-12 12:12:12.999999'' as datetime), time''12:12:12.999999'')', timestampdiff(microsecond, cast('2022-9-12 12:12:12.999999' as datetime), time'12:12:12.999999'));
insert into test values('timestampdiff(microsecond, time''12:12:12.999999'', cast(''2022-9-12 12:12:12.999999'' as datetime))', timestampdiff(microsecond, time'12:12:12.999999', cast('2022-9-12 12:12:12.999999' as datetime)));
insert into test values('timestampdiff(microsecond, date''2022-9-12'', time''12:12:12.999999'')',timestampdiff(microsecond, date'2022-9-12', time'12:12:12.999999'));
insert into test values('timestampdiff(microsecond, time''12:12:12.999999'', date''2022-9-12'')', timestampdiff(microsecond, time'12:12:12.999999', date'2022-9-12'));
insert into test values('timestampdiff(microsecond, ''20211112121212.999999'', ''20220912111111.999999'')', timestampdiff(microsecond, '20211112121212.999999', '20220912111111.999999'));
insert into test values('timestampdiff(microsecond, 101, ''20211112121212.999999'')', timestampdiff(microsecond, 101, '20211112121212.999999'));
insert into test values('timestampdiff(microsecond, ''20211112121212.999999'', 101)', timestampdiff(microsecond, '20211112121212.999999', 101));
insert into test values('timestampdiff(microsecond, 99991231235959.999999, 101)', timestampdiff(microsecond, 99991231235959.999999, 101));
insert into test values('timestampdiff(microsecond, 101, 99991231235959.999999)', timestampdiff(microsecond, 101, 99991231235959.999999));
-- 特异
insert into test values('timestampdiff(week, null, ''9999-12-31'')', timestampdiff(week, null, '9999-12-31'));
insert into test values('timestampdiff(week, ''9999-12-31'', null)', timestampdiff(week, '9999-12-31', null));
insert into test values('timestampdiff(week, null, null)', timestampdiff(week, null, null));
--严格模式下,针对unit的非法报error
insert into test values('timestampdiff(abc, ''2020-11-11'', ''2020-11-12'')', timestampdiff(abc, '2020-11-11', '2020-11-12'));
ERROR: timestamp with time zone units "abc" not recognized
CONTEXT: referenced column: result
insert into test values('timestampdiff(decades, ''2020-11-11'', ''2020-11-12'')', timestampdiff(decades, '2020-11-11', '2020-11-12'));
ERROR: timestamp units "decades" not supported
CONTEXT: referenced column: result
--严格模式下,针对value的非法报warning
insert into test values('timestampdiff(day, ''2020-11-11'', ''abc'')', timestampdiff(day, '2020-11-11', 'abc'));
ERROR: Incorrect datetime value: "abc"
CONTEXT: referenced column: result
-- 非严格模式,参数不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('timestampdiff(microsecond, ''abc'', ''2021-11-12'')', timestampdiff(microsecond, 'abc', '2021-11-12'));
WARNING: Incorrect datetime value: "abc"
CONTEXT: referenced column: result
insert into test values('timestampdiff(microsecond, ''2021-11-12'', ''10000-1-1'')', timestampdiff(microsecond, '2021-11-12', '10000-1-1'));
WARNING: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('timestampdiff(microsecond, ''10000-1-1'', ''2021-11-12'')', timestampdiff(microsecond, '10000-1-1', '2021-11-12'));
WARNING: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
--非严格模式下,unit不合法,仍然报error
insert into test values('timestampdiff(abc, ''2020-11-11'', ''2020-11-12'')', timestampdiff(abc, '2020-11-11', '2020-11-12'));
ERROR: timestamp with time zone units "abc" not recognized
CONTEXT: referenced column: result
insert into test values('timestampdiff(decades, ''2020-11-11'', ''2020-11-12'')', timestampdiff(decades, '2020-11-11', '2020-11-12'));
ERROR: timestamp units "decades" not supported
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('timestampdiff(microsecond, ''abc'', ''2021-11-12'')', timestampdiff(microsecond, 'abc', '2021-11-12'));
ERROR: Incorrect datetime value: "abc"
CONTEXT: referenced column: result
insert into test values('timestampdiff(microsecond, ''2021-11-12'', ''10000-1-1'')', timestampdiff(microsecond, '2021-11-12', '10000-1-1'));
ERROR: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('timestampdiff(microsecond, ''10000-1-1'', ''2021-11-12'')', timestampdiff(microsecond, '10000-1-1', '2021-11-12'));
ERROR: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('timestampdiff(abc, ''2020-11-11'', ''2020-11-12'')', timestampdiff(abc, '2020-11-11', '2020-11-12'));
ERROR: timestamp with time zone units "abc" not recognized
CONTEXT: referenced column: result
insert into test values('timestampdiff(decades, ''2020-11-11'', ''2020-11-12'')', timestampdiff(decades, '2020-11-11', '2020-11-12'));
ERROR: timestamp units "decades" not supported
CONTEXT: referenced column: result
insert into test values('timestampdiff(day, ''2020-11-11'', ''abc'')', timestampdiff(day, '2020-11-11', 'abc'));
ERROR: Incorrect datetime value: "abc"
CONTEXT: referenced column: result
-- SQL_TSI_ 兼容
select timestampdiff(SQL_TSI_SECOND, '2001-02-01', '2001-05-01') = timestampdiff(SECOND, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_MINUTE, '2001-02-01', '2001-05-01') = timestampdiff(MINUTE, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') = timestampdiff(HOUR, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') = timestampdiff(DAY, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') = timestampdiff(WEEK, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_MONTH, '2001-02-01', '2001-05-01') = timestampdiff(MONTH, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_QUARTER, '2001-02-01', '2001-05-01') = timestampdiff(QUARTER, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select timestampdiff(SQL_TSI_YEAR, '2001-02-01', '2001-05-01') = timestampdiff(YEAR, '2001-02-01', '2001-05-01');
?column?
----------
t
(1 row)
select TIMESTAMPDIFF(HOUR,'2024-12-31 00:00:00','2024-12-31 20:12:00') ;
timestampdiff
---------------
20
(1 row)
select TIMESTAMPDIFF(DAY,'2024-12-30 00:00:00','2024-12-30 20:12:00') ;
timestampdiff
---------------
0
(1 row)
select TIMESTAMPDIFF(DAY,'2024-12-31 00:00:00','2024-12-31 20:12:00') ;
timestampdiff
---------------
0
(1 row)
select TIMESTAMPDIFF(DAY,'2023-12-31 00:00:00','2023-12-31 20:12:00') ;
timestampdiff
---------------
0
(1 row)
select TIMESTAMPDIFF(HOUR,'2025-1-1 01:00:00','2024-12-31 20:12:00') ;
timestampdiff
---------------
-4
(1 row)
select TIMESTAMPDIFF(HOUR,'2024-12-31 20:12:00', '2025-1-1 01:00:00') ;
timestampdiff
---------------
4
(1 row)
set dolphin.b_compatibility_mode = false;
-- test convert_tz
-- 严格模式或者非严格模式都有值
-- 双字母,第一次转换超[1970-1-1 00:00:01.000000, 2038-01-19 03:14:07.999999],结果不转换
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''MET'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'MET', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''CCT'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'CCT', 'GMT'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''EDT'', ''GMT'')', convert_tz('2038-01-19 03:14:07.999999', 'EDT', 'GMT'));
-- 双字母正常转换
insert into test values('convert_tz(''1234-1-1 00:00:00'', ''MET'', ''GMT'')', convert_tz('1234-1-1 00:00:00', 'MET', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''GMT'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'GMT', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''EDT'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'EDT', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''CDT'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'CDT', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''EST'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'EST', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''MDT'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'MDT', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''MST'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', 'MST', 'GMT'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''JST'', ''GMT'')',convert_tz('2038-01-19 03:14:07.999999', 'JST', 'GMT'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''KST'', ''GMT'')',convert_tz('2038-01-19 03:14:07.999999', 'KST', 'GMT'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''CCT'', ''GMT'')',convert_tz('2038-01-19 03:14:07.999999', 'CCT', 'GMT'));
-- 双数字,第一次转换超[1970-1-1 00:00:01.000000, 2038-01-19 03:14:07.999999],结果不转换
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''+1:00'', ''+0:00'')', convert_tz('1970-1-1 00:00:01.000000', '+1:00', '+0:00'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''-1:00'', ''+0:00'')', convert_tz('1970-1-1 00:00:01.000000', '+1:00', '+0:00'));
-- 双数字正常转换
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''-1:00'', ''+0:00'')', convert_tz('1970-1-1 00:00:01.000000', '-1:00', '+0:00'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''-2:00'', ''+0:00'')', convert_tz('1970-1-1 00:00:01.000000', '-2:00', '+0:00'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''-10:00'', ''+0:00'')', convert_tz('1970-1-1 00:00:01.000000', '-10:00', '+0:00'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''+1:00'', ''+0:00'')', convert_tz('2038-01-19 03:14:07.999999', '+1:00', '+0:00'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''+2:00'', ''+0:00'')', convert_tz('2038-01-19 03:14:07.999999', '+2:00', '+0:00'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''+10:00'', ''+0:00'')', convert_tz('2038-01-19 03:14:07.999999', '+10:00', '+0:00'));
-- 字母数字混合
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''-1:00'', ''GMT'')', convert_tz('1970-1-1 00:00:01.000000', '-1:00', 'GMT'));
insert into test values('convert_tz(''1970-1-1 00:00:01.000000'', ''GMT'', ''+3:00'')', convert_tz('1970-1-1 00:00:01.000000', 'GMT', '+3:00'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''+2:00'', ''GMT'')', convert_tz('2038-01-19 03:14:07.999999', '+2:00', 'GMT'));
insert into test values('convert_tz(''2038-01-19 03:14:07.999999'', ''GMT'', ''+7:00'')', convert_tz('2038-01-19 03:14:07.999999', 'GMT', '+7:00'));
insert into test values('convert_tz(time''10:10:10'', ''GMT'', ''+7:00'')', convert_tz(time'10:10:10', 'GMT', '+7:00'));
insert into test values('convert_tz(101, ''GMT'', ''+7:00'')', convert_tz(101, 'GMT', '+7:00'));
-- 特异
insert into test values('convert_tz(null, ''+1:00'', ''+0:00'')', convert_tz(null, '+1:00', '+0:00'));
insert into test values('convert_tz(''2021-11-12 12:12:12'', null, ''+0:00'')', convert_tz('2021-11-12 12:12:12', null, '+0:00'));
insert into test values('convert_tz(''2021-11-12 12:12:12'', ''+1:00'', null)', convert_tz('2021-11-12 12:12:12', '+1:00', null));
insert into test values('convert_tz(''2021-11-12 12:12:12'', ''abc'', ''+0:00'')', convert_tz('2021-11-12 12:12:12', 'abc', '+0:00'));
insert into test values('convert_tz(''2021-11-12 12:12:12'', ''+1:00'', ''abc'')', convert_tz('2021-11-12 12:12:12', '+1:00', 'abc'));
insert into test values('convert_tz(''2021-11-12 12:12:12'', ''+13:01'', ''+0:00'')', convert_tz('2021-11-12 12:12:12', '+13:01', '+0:00'));
insert into test values('convert_tz(''2021-11-12 12:12:12'', ''+0:00'', ''-13:00'')', convert_tz('2021-11-12 12:12:12', '+0:00', '-13:00'));
-- 非严格模式,参数不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('convert_tz(''10000-1-1 10:10:10'', ''+1:00'', ''+0:00'')', convert_tz('10000-1-1 10:10:10', '+1:00', '+0:00'));
WARNING: Incorrect datetime value: "10000-1-1 10:10:10"
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('convert_tz(''10000-1-1 10:10:10'', ''+1:00'', ''+0:00'')', convert_tz('10000-1-1 10:10:10', '+1:00', '+0:00'));
ERROR: Incorrect datetime value: "10000-1-1 10:10:10"
CONTEXT: referenced column: result
-- test adddate(date/datetime/time, INTERVAL/days)
-- 严格模式或者非严格模式都有值
-- 功能-unit
insert into test values('adddate(''0001-01-01'',INTERVAL 1 year)', adddate('0001-01-01',INTERVAL 1 year));
insert into test values('adddate(''0001-01-01'',INTERVAL 1 day)', adddate('0001-01-01',INTERVAL 1 day));
insert into test values('adddate(''0001-01-01'',INTERVAL 1 month)', adddate('0001-01-01',INTERVAL 1 month));
insert into test values('adddate(''0001-01-01'',INTERVAL 1 hour)', adddate('0001-01-01',INTERVAL 1 hour));
insert into test values('adddate(''0001-01-01'',INTERVAL 1 minute)', adddate('0001-01-01',INTERVAL 1 minute));
insert into test values('adddate(''0001-01-01'',INTERVAL 1 second)', adddate('0001-01-01',INTERVAL 1 second));
insert into test values('adddate(''0001-01-01 12:12:12'',INTERVAL 1 hour)', adddate('0001-01-01 12:12:12',INTERVAL 1 hour));
insert into test values('adddate(''0001-01-01 12:12:12'',INTERVAL 1 minute)', adddate('0001-01-01 12:12:12',INTERVAL 1 minute));
insert into test values('adddate(''0001-01-01 12:12:12'',INTERVAL 1 second)', adddate('0001-01-01 12:12:12',INTERVAL 1 second));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 year)', adddate('9999-12-31',INTERVAL -1 year));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 day)', adddate('9999-12-31',INTERVAL -1 day));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 month)', adddate('9999-12-31',INTERVAL -1 month));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 hour)', adddate('9999-12-31',INTERVAL -1 hour));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 minute)', adddate('9999-12-31',INTERVAL -1 minute));
insert into test values('adddate(''9999-12-31'',INTERVAL -1 second)', adddate('9999-12-31',INTERVAL -1 second));
insert into test values('adddate(''9999-12-31 12:12:12'',INTERVAL -1 hour)', adddate('9999-12-31 12:12:12',INTERVAL -1 hour));
insert into test values('adddate(''9999-12-31 12:12:12'',INTERVAL -1 minute)', adddate('9999-12-31 12:12:12',INTERVAL -1 minute));
insert into test values('adddate(''9999-12-31 12:12:12'',INTERVAL -1 second)', adddate('9999-12-31 12:12:12',INTERVAL -1 second));
insert into test values('adddate(''2021-11-12'', -1)', adddate('2021-11-12', -1));
insert into test values('adddate(''2021-11-12'', 1)', adddate('2021-11-12', 1));
insert into test values('adddate(''11:11:11'', 2)', adddate('11:11:11', 2));
insert into test values('adddate(''11:11:11'', INTERVAL 2 day)', adddate('11:11:11', INTERVAL 2 day));
insert into test values('adddate(''11:11:11'', INTERVAL 2 second)', adddate('11:11:11', INTERVAL 2 second));
-- 功能-一些进位情况
insert into test values('adddate(''0001-12-31'',INTERVAL 1 day)',adddate('0001-12-31',INTERVAL 1 day));
insert into test values('adddate(''2021-12-31'',INTERVAL 1 day)',adddate('2021-12-31',INTERVAL 1 day));
insert into test values('adddate(''9998-12-31'',INTERVAL 1 day)',adddate('9998-12-31',INTERVAL 1 day));
insert into test values('adddate(''0001-12-31'',INTERVAL 1 month)',adddate('0001-12-31',INTERVAL 1 month));
insert into test values('adddate(''1999-12-31'',INTERVAL 1 day)',adddate('1999-12-31',INTERVAL 1 day));
insert into test values('adddate(''1999-12-31'',INTERVAL 1 year)',adddate('1999-12-31',INTERVAL 1 year));
insert into test values('adddate(''1999-12-31 23:59:59'',INTERVAL 1 second)',adddate('1999-12-31 23:59:59',INTERVAL 1 second));
insert into test values('adddate(''1999-12-31 23:59:00'',INTERVAL 1 minute)',adddate('1999-12-31 23:59:00',INTERVAL 1 minute));
insert into test values('adddate(''1999-12-31 23:00:00'',INTERVAL 1 hour)',adddate('1999-12-31 23:00:00',INTERVAL 1 hour));
-- 功能-第一参数为显示time类型
insert into test values('adddate(time''12:12:12'', INTERVAL 1 day)', adddate(time'12:12:12', INTERVAL 1 day));
insert into test values('adddate(time''12:12:12'', INTERVAL 1 hour)', adddate(time'12:12:12', INTERVAL 1 hour));
insert into test values('adddate(time''12:12:12'', INTERVAL 1 minute)', adddate(time'12:12:12', INTERVAL 1 minute));
insert into test values('adddate(time''12:12:12'', INTERVAL 1 second)', adddate(time'12:12:12', INTERVAL 1 second));
insert into test values('adddate(time''12:12:12'', INTERVAL -1 day)', adddate(time'12:12:12', INTERVAL -1 day));
insert into test values('adddate(time''12:12:12'', INTERVAL -1 hour)', adddate(time'12:12:12', INTERVAL -1 hour));
insert into test values('adddate(time''12:12:12'', INTERVAL -1 minute)', adddate(time'12:12:12', INTERVAL -1 minute));
insert into test values('adddate(time''12:12:12'', INTERVAL -1 second)', adddate(time'12:12:12', INTERVAL -1 second));
insert into test values('adddate(time''12:12:12'', 1)', adddate(time'12:12:12', 1));
insert into test values('adddate(time''12:12:12'', -1)', adddate(time'12:12:12', -1));
-- 类型
insert into test values('adddate(date''0001-01-01'',INTERVAL 1 year)', adddate(date'0001-01-01',INTERVAL 1 year));
insert into test values('adddate(cast(''9999-12-31 12:12:12'' as datetime),INTERVAL -1 second)', adddate(cast('9999-12-31 12:12:12' as datetime), INTERVAL -1 second));
insert into test values('adddate(time''838:59:59'', INTERVAL -1 second)', adddate(time'838:59:59',INTERVAL -1 second));
insert into test values('adddate(101, INTERVAL 1 year)', adddate(101, INTERVAL 1 year));
insert into test values('adddate(101, INTERVAL 100 second)', adddate(101, INTERVAL 100 second));
insert into test values('adddate(101, 1)', adddate(101, 1));
-- 特异
insert into test values('adddate(null, INTERVAL 1 day)', adddate(null, INTERVAL 1 day));
insert into test values('adddate(''2021-11-12'', null)', adddate('2021-11-12', null));
insert into test values('adddate(null, null)', adddate(null, null));
-- 非严格模式,参数或者结果不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('adddate(0, INTERVAL 100 second)', adddate(0, INTERVAL 100 second));
WARNING: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('adddate(''10000-1-1'', INTERVAL -1 day)', adddate('10000-1-1', INTERVAL -1 day));
WARNING: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 day)', adddate('9999-12-31', INTERVAL 1 day));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 month)', adddate('9999-12-31', INTERVAL 1 month));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 year)', adddate('9999-12-31', INTERVAL 1 year));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:59:59'', INTERVAL 1 second)', adddate('9999-12-31 23:59:59', INTERVAL 1 second));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:59:00'', INTERVAL 1 minute)', adddate('9999-12-31 23:59:00', INTERVAL 1 minute));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:00:00'', INTERVAL 1 hour)', adddate('9999-12-31 23:00:00', INTERVAL 1 hour));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(time''838:59:59'', INTERVAL 1 second)', adddate(time'838:59:59', INTERVAL 1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
insert into test values('adddate(time''-838:59:59'', INTERVAL -1 second)', adddate(time'-838:59:59', INTERVAL -1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('adddate(0, INTERVAL 100 second)', adddate(0, INTERVAL 100 second));
ERROR: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('adddate(''10000-1-1'', INTERVAL -1 day)', adddate('10000-1-1', INTERVAL -1 day));
ERROR: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 day)', adddate('9999-12-31', INTERVAL 1 day));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 month)', adddate('9999-12-31', INTERVAL 1 month));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31'', INTERVAL 1 year)', adddate('9999-12-31', INTERVAL 1 year));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:59:59'', INTERVAL 1 second)', adddate('9999-12-31 23:59:59', INTERVAL 1 second));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:59:00'', INTERVAL 1 minute)', adddate('9999-12-31 23:59:00', INTERVAL 1 minute));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(''9999-12-31 23:00:00'', INTERVAL 1 hour)', adddate('9999-12-31 23:00:00', INTERVAL 1 hour));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('adddate(time''838:59:59'', INTERVAL 1 second)', adddate(time'838:59:59', INTERVAL 1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
insert into test values('adddate(time''-838:59:59'', INTERVAL -1 second)', adddate(time'-838:59:59', INTERVAL -1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
-- 结果小于'0001-1-1 00:00:00'时,结果中日期部分置为'0000-00-00',时间部分为相应值。
insert into test values('adddate(''0001-1-1'', INTERVAL -1 day)', adddate('0001-1-1', INTERVAL -1 day));
insert into test values('adddate(''0001-1-1'', -1)', adddate('0001-1-1', -1));
insert into test values('adddate(''0001-1-1 00:00:00'', INTERVAL -1 second)', adddate('0001-1-1 00:00:00', INTERVAL -1 second));
-- 结果超越边界,严格模式报错,非严格模式报warning,返回NULL。
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('adddate(''00010101'', -367)', adddate('00010101', -367));
ERROR: date/time field value out of range
CONTEXT: referenced column: result
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('adddate(''00010101'', -367)', adddate('00010101', -367));
WARNING: date/time field value out of range
CONTEXT: referenced column: result
-- test date_add(date/datetime/time, INTERVAL)
-- 严格模式或者非严格模式都有值
-- 功能-unit
insert into test values('date_add(''0001-01-01'',INTERVAL 1 year)', date_add('0001-01-01',INTERVAL 1 year));
insert into test values('date_add(''0001-01-01'',INTERVAL 1 day)', date_add('0001-01-01',INTERVAL 1 day));
insert into test values('date_add(''0001-01-01'',INTERVAL 1 month)', date_add('0001-01-01',INTERVAL 1 month));
insert into test values('date_add(''0001-01-01'',INTERVAL 1 hour)', date_add('0001-01-01',INTERVAL 1 hour));
insert into test values('date_add(''0001-01-01'',INTERVAL 1 minute)', date_add('0001-01-01',INTERVAL 1 minute));
insert into test values('date_add(''0001-01-01'',INTERVAL 1 second)', date_add('0001-01-01',INTERVAL 1 second));
insert into test values('date_add(''0001-01-01 12:12:12'',INTERVAL 1 hour)', date_add('0001-01-01 12:12:12',INTERVAL 1 hour));
insert into test values('date_add(''0001-01-01 12:12:12'',INTERVAL 1 minute)', date_add('0001-01-01 12:12:12',INTERVAL 1 minute));
insert into test values('date_add(''0001-01-01 12:12:12'',INTERVAL 1 second)', date_add('0001-01-01 12:12:12',INTERVAL 1 second));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 year)', date_add('9999-12-31',INTERVAL -1 year));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 day)', date_add('9999-12-31',INTERVAL -1 day));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 month)', date_add('9999-12-31',INTERVAL -1 month));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 hour)', date_add('9999-12-31',INTERVAL -1 hour));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 minute)', date_add('9999-12-31',INTERVAL -1 minute));
insert into test values('date_add(''9999-12-31'',INTERVAL -1 second)', date_add('9999-12-31',INTERVAL -1 second));
insert into test values('date_add(''9999-12-31 12:12:12'',INTERVAL -1 hour)', date_add('9999-12-31 12:12:12',INTERVAL -1 hour));
insert into test values('date_add(''9999-12-31 12:12:12'',INTERVAL -1 minute)', date_add('9999-12-31 12:12:12',INTERVAL -1 minute));
insert into test values('date_add(''9999-12-31 12:12:12'',INTERVAL -1 second)', date_add('9999-12-31 12:12:12',INTERVAL -1 second));
-- 功能-一些进位情况
insert into test values('date_add(''0001-12-31'',INTERVAL 1 day)',date_add('0001-12-31',INTERVAL 1 day));
insert into test values('date_add(''2021-12-31'',INTERVAL 1 day)',date_add('2021-12-31',INTERVAL 1 day));
insert into test values('date_add(''9998-12-31'',INTERVAL 1 day)',date_add('9998-12-31',INTERVAL 1 day));
insert into test values('date_add(''0001-12-31'',INTERVAL 1 month)',date_add('0001-12-31',INTERVAL 1 month));
insert into test values('date_add(''1999-12-31'',INTERVAL 1 day)',date_add('1999-12-31',INTERVAL 1 day));
insert into test values('date_add(''1999-12-31'',INTERVAL 1 year)',date_add('1999-12-31',INTERVAL 1 year));
insert into test values('date_add(''1999-12-31 23:59:59'',INTERVAL 1 second)',date_add('1999-12-31 23:59:59',INTERVAL 1 second));
insert into test values('date_add(''1999-12-31 23:59:00'',INTERVAL 1 minute)',date_add('1999-12-31 23:59:00',INTERVAL 1 minute));
insert into test values('date_add(''1999-12-31 23:00:00'',INTERVAL 1 hour)',date_add('1999-12-31 23:00:00',INTERVAL 1 hour));
-- 功能-第一参数为显示time类型
insert into test values('date_add(time''12:12:12'', INTERVAL 1 day)', date_add(time'12:12:12', INTERVAL 1 day));
insert into test values('date_add(time''12:12:12'', INTERVAL 1 hour)', date_add(time'12:12:12', INTERVAL 1 hour));
insert into test values('date_add(time''12:12:12'', INTERVAL 1 minute)', date_add(time'12:12:12', INTERVAL 1 minute));
insert into test values('date_add(time''12:12:12'', INTERVAL 1 second)', date_add(time'12:12:12', INTERVAL 1 second));
insert into test values('date_add(time''12:12:12'', INTERVAL -1 day)', date_add(time'12:12:12', INTERVAL -1 day));
insert into test values('date_add(time''12:12:12'', INTERVAL -1 hour)', date_add(time'12:12:12', INTERVAL -1 hour));
insert into test values('date_add(time''12:12:12'', INTERVAL -1 minute)', date_add(time'12:12:12', INTERVAL -1 minute));
insert into test values('date_add(time''12:12:12'', INTERVAL -1 second)', date_add(time'12:12:12', INTERVAL -1 second));
-- 类型
insert into test values('date_add(date''0001-01-01'',INTERVAL 1 year)', date_add(date'0001-01-01',INTERVAL 1 year));
insert into test values('date_add(cast(''9999-12-31 12:12:12'' as datetime),INTERVAL -1 second)', date_add(cast('9999-12-31 12:12:12' as datetime), INTERVAL -1 second));
insert into test values('date_add(time''838:59:59'', INTERVAL -1 second)', date_add(time'838:59:59',INTERVAL -1 second));
insert into test values('date_add(101, INTERVAL 1 year)', date_add(101, INTERVAL 1 year));
insert into test values('date_add(101, INTERVAL 100 second)', date_add(101, INTERVAL 100 second));
-- 特异
insert into test values('date_add(null, INTERVAL 1 day)', date_add(null, INTERVAL 1 day));
-- 非严格模式,参数或者结果不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_add(0, INTERVAL 100 second)', date_add(0, INTERVAL 100 second));
WARNING: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('date_add(''10000-1-1'', INTERVAL -1 day)', date_add('10000-1-1', INTERVAL -1 day));
WARNING: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 day)', date_add('9999-12-31', INTERVAL 1 day));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 month)', date_add('9999-12-31', INTERVAL 1 month));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 year)', date_add('9999-12-31', INTERVAL 1 year));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:59:59'', INTERVAL 1 second)', date_add('9999-12-31 23:59:59', INTERVAL 1 second));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:59:00'', INTERVAL 1 minute)', date_add('9999-12-31 23:59:00', INTERVAL 1 minute));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:00:00'', INTERVAL 1 hour)', date_add('9999-12-31 23:00:00', INTERVAL 1 hour));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(time''838:59:59'', INTERVAL 1 second)', date_add(time'838:59:59', INTERVAL 1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
insert into test values('date_add(time''-838:59:59'', INTERVAL -1 second)', date_add(time'-838:59:59', INTERVAL -1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_add(0, INTERVAL 100 second)', date_add(0, INTERVAL 100 second));
ERROR: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('date_add(''10000-1-1'', INTERVAL -1 day)', date_add('10000-1-1', INTERVAL -1 day));
ERROR: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 day)', date_add('9999-12-31', INTERVAL 1 day));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 month)', date_add('9999-12-31', INTERVAL 1 month));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31'', INTERVAL 1 year)', date_add('9999-12-31', INTERVAL 1 year));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:59:59'', INTERVAL 1 second)', date_add('9999-12-31 23:59:59', INTERVAL 1 second));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:59:00'', INTERVAL 1 minute)', date_add('9999-12-31 23:59:00', INTERVAL 1 minute));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(''9999-12-31 23:00:00'', INTERVAL 1 hour)', date_add('9999-12-31 23:00:00', INTERVAL 1 hour));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_add(time''838:59:59'', INTERVAL 1 second)', date_add(time'838:59:59', INTERVAL 1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
insert into test values('date_add(time''-838:59:59'', INTERVAL -1 second)', date_add(time'-838:59:59', INTERVAL -1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
-- 结果小于'0001-1-1 00:00:00'时,结果中日期部分置为'0000-00-00',时间部分为相应值。
insert into test values('date_add(''0001-1-1'', INTERVAL -1 day)', date_add('0001-1-1', INTERVAL -1 day));
insert into test values('date_add(''0001-1-1 00:00:00'', INTERVAL -1 second)', date_add('0001-1-1 00:00:00', INTERVAL -1 second));
-- 结果超越边界,严格模式报错,非严格模式报warning,返回NULL。
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_add(''00010101'', INTERVAL -367 day)', date_add('00010101', INTERVAL -367 day));
ERROR: date/time field overflow
CONTEXT: referenced column: result
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_add(''00010101'', INTERVAL -367 day)', date_add('00010101', INTERVAL -367 day));
WARNING: date/time field overflow
CONTEXT: referenced column: result
-- test date_sub(date/datetime/time, INTERVAL)
-- 严格模式或者非严格模式都有值
-- 功能-unit
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 year)', date_sub('0001-01-01',INTERVAL -1 year));
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 day)', date_sub('0001-01-01',INTERVAL -1 day));
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 month)', date_sub('0001-01-01',INTERVAL -1 month));
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 hour)', date_sub('0001-01-01',INTERVAL -1 hour));
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 minute)', date_sub('0001-01-01',INTERVAL -1 minute));
insert into test values('date_sub(''0001-01-01'',INTERVAL -1 second)', date_sub('0001-01-01',INTERVAL -1 second));
insert into test values('date_sub(''0001-01-01 12:12:12'',INTERVAL -1 hour)', date_sub('0001-01-01 12:12:12',INTERVAL -1 hour));
insert into test values('date_sub(''0001-01-01 12:12:12'',INTERVAL -1 minute)', date_sub('0001-01-01 12:12:12',INTERVAL -1 minute));
insert into test values('date_sub(''0001-01-01 12:12:12'',INTERVAL -1 second)', date_sub('0001-01-01 12:12:12',INTERVAL -1 second));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 year)', date_sub('9999-12-31',INTERVAL 1 year));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 day)', date_sub('9999-12-31',INTERVAL 1 day));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 month)', date_sub('9999-12-31',INTERVAL 1 month));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 hour)', date_sub('9999-12-31',INTERVAL 1 hour));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 minute)', date_sub('9999-12-31',INTERVAL 1 minute));
insert into test values('date_sub(''9999-12-31'',INTERVAL 1 second)', date_sub('9999-12-31',INTERVAL 1 second));
insert into test values('date_sub(''9999-12-31 12:12:12'',INTERVAL 1 hour)', date_sub('9999-12-31 12:12:12',INTERVAL 1 hour));
insert into test values('date_sub(''9999-12-31 12:12:12'',INTERVAL 1 minute)', date_sub('9999-12-31 12:12:12',INTERVAL 1 minute));
insert into test values('date_sub(''9999-12-31 12:12:12'',INTERVAL 1 second)', date_sub('9999-12-31 12:12:12',INTERVAL 1 second));
-- 功能-一些进位情况
insert into test values('date_sub(''0001-12-31'',INTERVAL -1 day)',date_sub('0001-12-31',INTERVAL -1 day));
insert into test values('date_sub(''2021-12-31'',INTERVAL -1 day)',date_sub('2021-12-31',INTERVAL -1 day));
insert into test values('date_sub(''9998-12-31'',INTERVAL -1 day)',date_sub('9998-12-31',INTERVAL -1 day));
insert into test values('date_sub(''0001-12-31'',INTERVAL -1 month)',date_sub('0001-12-31',INTERVAL -1 month));
insert into test values('date_sub(''1999-12-31'',INTERVAL -1 day)',date_sub('1999-12-31',INTERVAL -1 day));
insert into test values('date_sub(''1999-12-31'',INTERVAL -1 year)',date_sub('1999-12-31',INTERVAL -1 year));
insert into test values('date_sub(''1999-12-31 23:59:59'',INTERVAL -1 second)',date_sub('1999-12-31 23:59:59',INTERVAL -1 second));
insert into test values('date_sub(''1999-12-31 23:59:00'',INTERVAL -1 minute)',date_sub('1999-12-31 23:59:00',INTERVAL -1 minute));
insert into test values('date_sub(''1999-12-31 23:00:00'',INTERVAL -1 hour)',date_sub('1999-12-31 23:00:00',INTERVAL -1 hour));
-- 功能-第一参数为显示time类型
insert into test values('date_sub(time''12:12:12'', INTERVAL 1 day)', date_sub(time'12:12:12', INTERVAL 1 day));
insert into test values('date_sub(time''12:12:12'', INTERVAL 1 hour)', date_sub(time'12:12:12', INTERVAL 1 hour));
insert into test values('date_sub(time''12:12:12'', INTERVAL 1 minute)', date_sub(time'12:12:12', INTERVAL 1 minute));
insert into test values('date_sub(time''12:12:12'', INTERVAL 1 second)', date_sub(time'12:12:12', INTERVAL 1 second));
insert into test values('date_sub(time''12:12:12'', INTERVAL -1 day)', date_sub(time'12:12:12', INTERVAL -1 day));
insert into test values('date_sub(time''12:12:12'', INTERVAL -1 hour)', date_sub(time'12:12:12', INTERVAL -1 hour));
insert into test values('date_sub(time''12:12:12'', INTERVAL -1 minute)', date_sub(time'12:12:12', INTERVAL -1 minute));
insert into test values('date_sub(time''12:12:12'', INTERVAL -1 second)', date_sub(time'12:12:12', INTERVAL -1 second));
-- 类型
insert into test values('date_sub(date''0001-01-01'',INTERVAL -1 year)', date_sub(date'0001-01-01',INTERVAL -1 year));
insert into test values('date_sub(cast(''9999-12-31 12:12:12'' as datetime),INTERVAL -1 second)', date_sub(cast('9999-12-31 12:12:12' as datetime) ,INTERVAL -1 second));
insert into test values('date_sub(time''838:59:59'', INTERVAL 1 second)', date_sub(time'838:59:59',INTERVAL 1 second));
insert into test values('date_sub(101, INTERVAL 1 year)', date_sub(101, INTERVAL 1 year));
insert into test values('date_sub(101, INTERVAL 100 second)', date_sub(101, INTERVAL 100 second));
-- 特异
insert into test values('date_sub(null, INTERVAL 1 day)', date_sub(null, INTERVAL 1 day));
-- 非严格模式,参数或者结果不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_sub(0, INTERVAL 100 second)', date_sub(0, INTERVAL 100 second));
WARNING: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('date_sub(''10000-1-1'', INTERVAL 1 day)', date_sub('10000-1-1', INTERVAL 1 day));
WARNING: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 day)', date_sub('9999-12-31', INTERVAL -1 day));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 month)', date_sub('9999-12-31', INTERVAL -1 month));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 year)', date_sub('9999-12-31', INTERVAL -1 year));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:59:59'', INTERVAL -1 second)', date_sub('9999-12-31 23:59:59', INTERVAL -1 second));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:59:00'', INTERVAL -1 minute)', date_sub('9999-12-31 23:59:00', INTERVAL -1 minute));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:00:00'', INTERVAL -1 hour)', date_sub('9999-12-31 23:00:00', INTERVAL -1 hour));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(time''838:59:59'', INTERVAL -1 second)', date_sub(time'838:59:59', INTERVAL -1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
insert into test values('date_sub(time''-838:59:59'', INTERVAL 1 second)', date_sub(time'-838:59:59', INTERVAL 1 second));
WARNING: time field value out of range
CONTEXT: referenced column: result
-- 严格模式,参数不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_sub(0, INTERVAL 100 second)', date_sub(0, INTERVAL 100 second));
ERROR: Incorrect datetime value: "0"
CONTEXT: referenced column: result
insert into test values('date_sub(''10000-1-1'', INTERVAL 1 day)', date_sub('10000-1-1', INTERVAL 1 day));
ERROR: Incorrect datetime value: "10000-1-1"
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 day)', date_sub('9999-12-31', INTERVAL -1 day));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 month)', date_sub('9999-12-31', INTERVAL -1 month));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31'', INTERVAL -1 year)', date_sub('9999-12-31', INTERVAL -1 year));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:59:59'', INTERVAL -1 second)', date_sub('9999-12-31 23:59:59', INTERVAL -1 second));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:59:00'', INTERVAL -1 minute)', date_sub('9999-12-31 23:59:00', INTERVAL -1 minute));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(''9999-12-31 23:00:00'', INTERVAL -1 hour)', date_sub('9999-12-31 23:00:00', INTERVAL -1 hour));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('date_sub(time''838:59:59'', INTERVAL -1 second)', date_sub(time'838:59:59', INTERVAL -1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
insert into test values('date_sub(time''-838:59:59'', INTERVAL 1 second)', date_sub(time'-838:59:59', INTERVAL 1 second));
ERROR: time field value out of range
CONTEXT: referenced column: result
-- 结果小于'0001-1-1 00:00:00'时,结果中日期部分置为'0000-00-00',时间部分为相应值。
insert into test values('date_sub(''0001-1-1'', INTERVAL 1 day)', date_sub('0001-1-1', INTERVAL 1 day));
insert into test values('date_sub(''0001-1-1 00:00:00'', INTERVAL 1 second)', date_sub('0001-1-1 00:00:00', INTERVAL 1 second));
-- 结果超越边界,严格模式报错,非严格模式报warning,返回NULL。
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_sub(''00010101'', INTERVAL -367 day)', date_sub('00010101', INTERVAL 367 day));
ERROR: date/time field overflow
CONTEXT: referenced column: result
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('date_sub(''00010101'', INTERVAL -367 day)', date_sub('00010101', INTERVAL 367 day));
WARNING: date/time field overflow
CONTEXT: referenced column: result
-- test addtime(datetime/time, time)
-- 严格模式或者非严格模式都有值
-- 功能
insert into test values('addtime(''00:00:00'', ''00:00:00'')', addtime('00:00:00', '00:00:00'));
insert into test values('addtime(''11:22:33'', ''20:20:20'')', addtime('11:22:33', '20:20:20'));
insert into test values('addtime(''11:22:33.999999'', ''00:00:00.000001'')', addtime('11:22:33.999999', '00:00:00.000001'));
insert into test values('addtime(''838:59:58'', ''00:00:01'')', addtime('838:59:58', '00:00:01'));
insert into test values('addtime(''838:59:59'', ''-00:00:01'')', addtime('838:59:59', '-00:00:01'));
insert into test values('addtime(''-838:59:58'', ''-00:00:01'')', addtime('-838:59:58', '-00:00:01'));
insert into test values('addtime(''-838:59:59'', ''00:00:01'')', addtime('-838:59:59', '00:00:01'));
insert into test values('addtime(''9999-12-31 23:59:59.999999'', ''00:00:00'')', addtime('9999-12-31 23:59:59.999999','00:00:00'));
insert into test values('addtime(''9999-12-31 23:59:59.999999'', ''-00:00:01'')', addtime('9999-12-31 23:59:59.999999','00:00:00'));
insert into test values('addtime(''9999-12-31 23:59:59.999999'', ''-838:59:59'')', addtime('9999-12-31 23:59:59.999999','-838:59:59'));
insert into test values('addtime(''2021-11-12 23:59:59'', ''23:59:10'')', addtime('2021-11-12 23:59:59', '23:59:10'));
insert into test values('addtime(''11:11:11'', ''11:11:11'')', addtime('11:11:11', '11:11:11'));
-- 类型
insert into test values('addtime(cast(''9999-12-31 23:59:59.999999'' as datetime(6)), ''00:00:00'')', addtime(cast('9999-12-31 23:59:59.999999' as datetime(6)),'00:00:00'));
insert into test values('addtime(time''12:12:12.999999'', ''00:00:00.000001'')', addtime(time'12:12:12.999999', '00:00:00.000001'));
insert into test values('addtime(''-8385959'', ''00:00:01'')', addtime('-8385959', '00:00:01'));
insert into test values('addtime(-8385959, ''00:00:01'')', addtime(-8385959, '00:00:01'));
insert into test values('addtime(0, ''00:00:01'')', addtime(0, '00:00:01'));
insert into test values('addtime(121112, ''10:00:00'')', addtime(121112, '10:00:00'));
-- 特异
insert into test values('addtime(null, ''00:00:01'')', addtime(null, '00:00:01'));
insert into test values('addtime(''00:00:01'', null)', addtime('00:00:01', null));
insert into test values('addtime(null, null)', addtime(null, null));
insert into test values('addtime(''12:12:12'', ''2021-11-12 12:12:12'')', addtime('12:12:12', '2021-11-12 12:12:12'));
insert into test values('addtime(''0001-1-1 00:00:00'', ''-00:00:01'')', addtime('0001-1-1 00:00:00', '-00:00:01'));
-- 非严格模式,参数或者结果不合法,报warning,返回NULL或者对应值
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('addtime(''839:00:00'', ''00:00:00'')', addtime('839:00:00', '00:00:00'));
WARNING: Truncated incorrect time value: "839:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''838:59:59'', ''00:00:01'')', addtime('838:59:59', '00:00:01'));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''838:59:59.1'', ''00:00:00'')', addtime('838:59:59.1', '00:00:00'));
WARNING: Truncated incorrect time value: "838:59:59.1"
CONTEXT: referenced column: result
insert into test values('addtime(''-838:59:59.1'', ''00:00:00'')', addtime('-838:59:59.1', '00:00:00'));
WARNING: Truncated incorrect time value: "-838:59:59.1"
CONTEXT: referenced column: result
insert into test values('addtime(''-839:00:00'', ''00:00:00'')', addtime('-839:00:00', '00:00:00'));
WARNING: Truncated incorrect time value: "-839:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''-838:59:59'', ''-00:00:01'')', addtime('-838:59:59', '-00:00:01'));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''9999-12-31 23:59:59'', ''00:00:01'')', addtime('9999-12-31 23:59:59', '00:00:01'));
WARNING: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''10000-1-1 00:00:00'', ''00:00:00'')', addtime('10000-1-1 00:00:00', '00:00:00'));
WARNING: Truncated incorrect time value: "10000-1-1 00:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''2022-01-01'', ''11:11:11'')', addtime('2022-01-01', '11:11:11'));
WARNING: Truncated incorrect time value: "2022-01-01"
CONTEXT: referenced column: result
insert into test values('addtime(99991231, ''10:00:00'')', addtime(99991231, '10:00:00'));
WARNING: Truncated incorrect time value: "99991231"
CONTEXT: referenced column: result
WARNING: date/time field overflow
CONTEXT: referenced column: result
-- 严格模式,参数或结果不合法,抛出错误
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test values('addtime(''839:00:00'', ''00:00:00'')', addtime('839:00:00', '00:00:00'));
ERROR: Truncated incorrect time value: "839:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''838:59:59'', ''00:00:01'')', addtime('838:59:59', '00:00:01'));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''838:59:59.1'', ''00:00:00'')', addtime('838:59:59.1', '00:00:00'));
ERROR: Truncated incorrect time value: "838:59:59.1"
CONTEXT: referenced column: result
insert into test values('addtime(''-838:59:59.1'', ''00:00:00'')', addtime('-838:59:59.1', '00:00:00'));
ERROR: Truncated incorrect time value: "-838:59:59.1"
CONTEXT: referenced column: result
insert into test values('addtime(''-839:00:00'', ''00:00:00'')', addtime('-839:00:00', '00:00:00'));
ERROR: Truncated incorrect time value: "-839:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''-838:59:59'', ''-00:00:01'')', addtime('-838:59:59', '-00:00:01'));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''9999-12-31 23:59:59'', ''00:00:01'')', addtime('9999-12-31 23:59:59', '00:00:01'));
ERROR: date/time field overflow
CONTEXT: referenced column: result
insert into test values('addtime(''10000-1-1 00:00:00'', ''00:00:00'')', addtime('10000-1-1 00:00:00', '00:00:00'));
ERROR: Truncated incorrect time value: "10000-1-1 00:00:00"
CONTEXT: referenced column: result
insert into test values('addtime(''2022-01-01'', ''11:11:11'')', addtime('2022-01-01', '11:11:11'));
ERROR: Truncated incorrect time value: "2022-01-01"
CONTEXT: referenced column: result
insert into test values('addtime(99991231, ''10:00:00'')', addtime(99991231, '10:00:00'));
ERROR: Truncated incorrect time value: "99991231"
CONTEXT: referenced column: result
select * from test order by funcname;
funcname | result
--------------------------------------------------------------------------------------------------+----------------------------
adddate('0001-01-01 12:12:12',INTERVAL 1 hour) | 0001-01-01 13:12:12
adddate('0001-01-01 12:12:12',INTERVAL 1 minute) | 0001-01-01 12:13:12
adddate('0001-01-01 12:12:12',INTERVAL 1 second) | 0001-01-01 12:12:13
adddate('0001-01-01',INTERVAL 1 day) | 0001-01-02
adddate('0001-01-01',INTERVAL 1 hour) | 0001-01-01 01:00:00
adddate('0001-01-01',INTERVAL 1 minute) | 0001-01-01 00:01:00
adddate('0001-01-01',INTERVAL 1 month) | 0001-02-01
adddate('0001-01-01',INTERVAL 1 second) | 0001-01-01 00:00:01
adddate('0001-01-01',INTERVAL 1 year) | 0002-01-01
adddate('0001-1-1 00:00:00', INTERVAL -1 second) | 0000-00-00 23:59:59
adddate('0001-1-1', -1) | 0000-00-00
adddate('0001-1-1', INTERVAL -1 day) | 0000-00-00
adddate('0001-12-31',INTERVAL 1 day) | 0002-01-01
adddate('0001-12-31',INTERVAL 1 month) | 0002-01-31
adddate('00010101', -367) |
adddate('10000-1-1', INTERVAL -1 day) |
adddate('11:11:11', 2) | 2011-11-13
adddate('11:11:11', INTERVAL 2 day) | 2011-11-13
adddate('11:11:11', INTERVAL 2 second) | 2011-11-11 00:00:02
adddate('1999-12-31 23:00:00',INTERVAL 1 hour) | 2000-01-01 00:00:00
adddate('1999-12-31 23:59:00',INTERVAL 1 minute) | 2000-01-01 00:00:00
adddate('1999-12-31 23:59:59',INTERVAL 1 second) | 2000-01-01 00:00:00
adddate('1999-12-31',INTERVAL 1 day) | 2000-01-01
adddate('1999-12-31',INTERVAL 1 year) | 2000-12-31
adddate('2021-11-12', -1) | 2021-11-11
adddate('2021-11-12', 1) | 2021-11-13
adddate('2021-11-12', null) |
adddate('2021-12-31',INTERVAL 1 day) | 2022-01-01
adddate('9998-12-31',INTERVAL 1 day) | 9999-01-01
adddate('9999-12-31 12:12:12',INTERVAL -1 hour) | 9999-12-31 11:12:12
adddate('9999-12-31 12:12:12',INTERVAL -1 minute) | 9999-12-31 12:11:12
adddate('9999-12-31 12:12:12',INTERVAL -1 second) | 9999-12-31 12:12:11
adddate('9999-12-31 23:00:00', INTERVAL 1 hour) |
adddate('9999-12-31 23:59:00', INTERVAL 1 minute) |
adddate('9999-12-31 23:59:59', INTERVAL 1 second) |
adddate('9999-12-31', INTERVAL 1 day) |
adddate('9999-12-31', INTERVAL 1 month) |
adddate('9999-12-31', INTERVAL 1 year) |
adddate('9999-12-31',INTERVAL -1 day) | 9999-12-30
adddate('9999-12-31',INTERVAL -1 hour) | 9999-12-30 23:00:00
adddate('9999-12-31',INTERVAL -1 minute) | 9999-12-30 23:59:00
adddate('9999-12-31',INTERVAL -1 month) | 9999-11-30
adddate('9999-12-31',INTERVAL -1 second) | 9999-12-30 23:59:59
adddate('9999-12-31',INTERVAL -1 year) | 9998-12-31
adddate(0, INTERVAL 100 second) |
adddate(101, 1) | 2000-01-02
adddate(101, INTERVAL 1 year) | 2001-01-01
adddate(101, INTERVAL 100 second) | 2000-01-01 00:01:40
adddate(cast('9999-12-31 12:12:12' as datetime),INTERVAL -1 second) | 9999-12-31 12:12:11
adddate(date'0001-01-01',INTERVAL 1 year) | 0002-01-01
adddate(null, INTERVAL 1 day) |
adddate(null, null) |
adddate(time'-838:59:59', INTERVAL -1 second) |
adddate(time'12:12:12', -1) | -11:47:48
adddate(time'12:12:12', 1) | 36:12:12
adddate(time'12:12:12', INTERVAL -1 day) | -11:47:48
adddate(time'12:12:12', INTERVAL -1 hour) | 11:12:12
adddate(time'12:12:12', INTERVAL -1 minute) | 12:11:12
adddate(time'12:12:12', INTERVAL -1 second) | 12:12:11
adddate(time'12:12:12', INTERVAL 1 day) | 36:12:12
adddate(time'12:12:12', INTERVAL 1 hour) | 13:12:12
adddate(time'12:12:12', INTERVAL 1 minute) | 12:13:12
adddate(time'12:12:12', INTERVAL 1 second) | 12:12:13
adddate(time'838:59:59', INTERVAL -1 second) | 838:59:58
adddate(time'838:59:59', INTERVAL 1 second) |
addtime('-8385959', '00:00:01') | -838:59:58
addtime('-838:59:58', '-00:00:01') | -838:59:59
addtime('-838:59:59', '-00:00:01') | -838:59:59
addtime('-838:59:59', '00:00:01') | -838:59:58
addtime('-838:59:59.1', '00:00:00') | -838:59:59
addtime('-839:00:00', '00:00:00') | -838:59:59
addtime('0001-1-1 00:00:00', '-00:00:01') |
addtime('00:00:00', '00:00:00') | 00:00:00
addtime('00:00:01', null) |
addtime('10000-1-1 00:00:00', '00:00:00') |
addtime('11:11:11', '11:11:11') | 22:22:22
addtime('11:22:33', '20:20:20') | 31:42:53
addtime('11:22:33.999999', '00:00:00.000001') | 11:22:34
addtime('12:12:12', '2021-11-12 12:12:12') |
addtime('2021-11-12 23:59:59', '23:59:10') | 2021-11-13 23:59:09
addtime('2022-01-01', '11:11:11') | 11:31:33
addtime('838:59:58', '00:00:01') | 838:59:59
addtime('838:59:59', '-00:00:01') | 838:59:58
addtime('838:59:59', '00:00:01') | 838:59:59
addtime('838:59:59.1', '00:00:00') | 838:59:59
addtime('839:00:00', '00:00:00') | 838:59:59
addtime('9999-12-31 23:59:59', '00:00:01') |
addtime('9999-12-31 23:59:59.999999', '-00:00:01') | 9999-12-31 23:59:59.999999
addtime('9999-12-31 23:59:59.999999', '-838:59:59') | 9999-11-27 01:00:00.999999
addtime('9999-12-31 23:59:59.999999', '00:00:00') | 9999-12-31 23:59:59.999999
addtime(-8385959, '00:00:01') | -838:59:58
addtime(0, '00:00:01') | 00:00:01
addtime(121112, '10:00:00') | 22:11:12
addtime(99991231, '10:00:00') | 838:59:59
addtime(cast('9999-12-31 23:59:59.999999' as datetime(6)), '00:00:00') | 9999-12-31 23:59:59.999999
addtime(null, '00:00:01') |
addtime(null, null) |
addtime(time'12:12:12.999999', '00:00:00.000001') | 12:12:13
convert_tz('10000-1-1 10:10:10', '+1:00', '+0:00') |
convert_tz('1234-1-1 00:00:00', 'MET', 'GMT') | 1234-01-01 00:00:00
convert_tz('1970-1-1 00:00:01.000000', '+1:00', '+0:00') | 1970-01-01 00:00:01
convert_tz('1970-1-1 00:00:01.000000', '-10:00', '+0:00') | 1970-01-01 10:00:01
convert_tz('1970-1-1 00:00:01.000000', '-1:00', '+0:00') | 1970-01-01 01:00:01
convert_tz('1970-1-1 00:00:01.000000', '-1:00', 'GMT') | 1970-01-01 01:00:01
convert_tz('1970-1-1 00:00:01.000000', '-2:00', '+0:00') | 1970-01-01 02:00:01
convert_tz('1970-1-1 00:00:01.000000', 'CCT', 'GMT') | 1970-01-01 00:00:01
convert_tz('1970-1-1 00:00:01.000000', 'CDT', 'GMT') | 1970-01-01 05:00:01
convert_tz('1970-1-1 00:00:01.000000', 'EDT', 'GMT') | 1970-01-01 04:00:01
convert_tz('1970-1-1 00:00:01.000000', 'EST', 'GMT') | 1970-01-01 05:00:01
convert_tz('1970-1-1 00:00:01.000000', 'GMT', '+3:00') | 1970-01-01 03:00:01
convert_tz('1970-1-1 00:00:01.000000', 'GMT', 'GMT') | 1970-01-01 00:00:01
convert_tz('1970-1-1 00:00:01.000000', 'MDT', 'GMT') | 1970-01-01 06:00:01
convert_tz('1970-1-1 00:00:01.000000', 'MET', 'GMT') | 1970-01-01 00:00:01
convert_tz('1970-1-1 00:00:01.000000', 'MST', 'GMT') | 1970-01-01 07:00:01
convert_tz('2021-11-12 12:12:12', '+0:00', '-13:00') |
convert_tz('2021-11-12 12:12:12', '+13:01', '+0:00') |
convert_tz('2021-11-12 12:12:12', '+1:00', 'abc') |
convert_tz('2021-11-12 12:12:12', '+1:00', null) |
convert_tz('2021-11-12 12:12:12', 'abc', '+0:00') |
convert_tz('2021-11-12 12:12:12', null, '+0:00') |
convert_tz('2038-01-19 03:14:07.999999', '+10:00', '+0:00') | 2038-01-18 17:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', '+1:00', '+0:00') | 2038-01-19 02:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', '+2:00', '+0:00') | 2038-01-19 01:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', '+2:00', 'GMT') | 2038-01-19 01:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', '-1:00', '+0:00') | 1970-01-01 00:00:01
convert_tz('2038-01-19 03:14:07.999999', 'CCT', 'GMT') | 2038-01-18 19:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', 'EDT', 'GMT') | 2038-01-19 03:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', 'GMT', '+7:00') | 2038-01-19 10:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', 'JST', 'GMT') | 2038-01-18 18:14:07.999999
convert_tz('2038-01-19 03:14:07.999999', 'KST', 'GMT') | 2038-01-18 18:14:07.999999
convert_tz(101, 'GMT', '+7:00') | 2000-01-01 07:00:00
convert_tz(null, '+1:00', '+0:00') |
--?.*
datediff('0000-01-01', '9999-12-31') | -3652424
datediff('10000-01-01', '2021-11-12') |
datediff('2021-01-01', '2021-12-31') | -364
datediff('2021-11-12', '2021-11-13') | -1
datediff('2021-11-12', 101) | 7986
datediff('2021-11-12', 101) | 7986
datediff('2021-11-12', null) |
datediff('2021-12-31 12:12:12', '2022-01-01 10:10:10') | -1
datediff('2021-12-31', '2022-01-01') | -1
--?.*
datediff('9999-12-31', '0000-01-01') | 3652424
datediff(100000101, 20211112) |
datediff(101, '2021-11-12') | -7986
datediff(20211112, 20211113) | -1
datediff(99991231235959.9999995, 20211112) |
datediff(9999999999999999999999, 20211112) |
datediff(cast('0021-12-31 12:12:12' as date), cast('2022-01-01 10:10:10' as date)) | -730486
datediff(cast('2021-12-31 12:12:12' as datetime), cast('2022-01-01 10:10:10' as datetime)) | -1
datediff(date'2021-11-12', date'2021-11-13') | 0
datediff(null, '2021-11-12') |
datediff(null, null) |
--?.*
datediff(time'10:10:10', time'10:10:10') | 0
date_add('0001-01-01 12:12:12',INTERVAL 1 hour) | 0001-01-01 13:12:12
date_add('0001-01-01 12:12:12',INTERVAL 1 minute) | 0001-01-01 12:13:12
date_add('0001-01-01 12:12:12',INTERVAL 1 second) | 0001-01-01 12:12:13
date_add('0001-01-01',INTERVAL 1 day) | 0001-01-02
date_add('0001-01-01',INTERVAL 1 hour) | 0001-01-01 01:00:00
date_add('0001-01-01',INTERVAL 1 minute) | 0001-01-01 00:01:00
date_add('0001-01-01',INTERVAL 1 month) | 0001-02-01
date_add('0001-01-01',INTERVAL 1 second) | 0001-01-01 00:00:01
date_add('0001-01-01',INTERVAL 1 year) | 0002-01-01
date_add('0001-1-1 00:00:00', INTERVAL -1 second) | 0000-00-00 23:59:59
date_add('0001-1-1', INTERVAL -1 day) | 0000-00-00
date_add('0001-12-31',INTERVAL 1 day) | 0002-01-01
date_add('0001-12-31',INTERVAL 1 month) | 0002-01-31
date_add('00010101', INTERVAL -367 day) |
date_add('10000-1-1', INTERVAL -1 day) |
date_add('1999-12-31 23:00:00',INTERVAL 1 hour) | 2000-01-01 00:00:00
date_add('1999-12-31 23:59:00',INTERVAL 1 minute) | 2000-01-01 00:00:00
date_add('1999-12-31 23:59:59',INTERVAL 1 second) | 2000-01-01 00:00:00
date_add('1999-12-31',INTERVAL 1 day) | 2000-01-01
date_add('1999-12-31',INTERVAL 1 year) | 2000-12-31
date_add('2021-12-31',INTERVAL 1 day) | 2022-01-01
date_add('9998-12-31',INTERVAL 1 day) | 9999-01-01
date_add('9999-12-31 12:12:12',INTERVAL -1 hour) | 9999-12-31 11:12:12
date_add('9999-12-31 12:12:12',INTERVAL -1 minute) | 9999-12-31 12:11:12
date_add('9999-12-31 12:12:12',INTERVAL -1 second) | 9999-12-31 12:12:11
date_add('9999-12-31 23:00:00', INTERVAL 1 hour) |
date_add('9999-12-31 23:59:00', INTERVAL 1 minute) |
date_add('9999-12-31 23:59:59', INTERVAL 1 second) |
date_add('9999-12-31', INTERVAL 1 day) |
date_add('9999-12-31', INTERVAL 1 month) |
date_add('9999-12-31', INTERVAL 1 year) |
date_add('9999-12-31',INTERVAL -1 day) | 9999-12-30
date_add('9999-12-31',INTERVAL -1 hour) | 9999-12-30 23:00:00
date_add('9999-12-31',INTERVAL -1 minute) | 9999-12-30 23:59:00
date_add('9999-12-31',INTERVAL -1 month) | 9999-11-30
date_add('9999-12-31',INTERVAL -1 second) | 9999-12-30 23:59:59
date_add('9999-12-31',INTERVAL -1 year) | 9998-12-31
date_add(0, INTERVAL 100 second) |
date_add(101, INTERVAL 1 year) | 2001-01-01
date_add(101, INTERVAL 100 second) | 2000-01-01 00:01:40
date_add(cast('9999-12-31 12:12:12' as datetime),INTERVAL -1 second) | 9999-12-31 12:12:11
date_add(date'0001-01-01',INTERVAL 1 year) | 0002-01-01
date_add(null, INTERVAL 1 day) |
date_add(time'-838:59:59', INTERVAL -1 second) |
--? date_add(time'12:12:12', INTERVAL -1 day) | .* 12:12:12
date_add(time'12:12:12', INTERVAL -1 hour) | 11:12:12
date_add(time'12:12:12', INTERVAL -1 minute) | 12:11:12
date_add(time'12:12:12', INTERVAL -1 second) | 12:12:11
--? date_add(time'12:12:12', INTERVAL 1 day) | .* 12:12:12
date_add(time'12:12:12', INTERVAL 1 hour) | 13:12:12
date_add(time'12:12:12', INTERVAL 1 minute) | 12:13:12
date_add(time'12:12:12', INTERVAL 1 second) | 12:12:13
date_add(time'838:59:59', INTERVAL -1 second) | 838:59:58
date_add(time'838:59:59', INTERVAL 1 second) |
date_sub('0001-01-01 12:12:12',INTERVAL -1 hour) | 0001-01-01 13:12:12
date_sub('0001-01-01 12:12:12',INTERVAL -1 minute) | 0001-01-01 12:13:12
date_sub('0001-01-01 12:12:12',INTERVAL -1 second) | 0001-01-01 12:12:13
date_sub('0001-01-01',INTERVAL -1 day) | 0001-01-02
date_sub('0001-01-01',INTERVAL -1 hour) | 0001-01-01 01:00:00
date_sub('0001-01-01',INTERVAL -1 minute) | 0001-01-01 00:01:00
date_sub('0001-01-01',INTERVAL -1 month) | 0001-02-01
date_sub('0001-01-01',INTERVAL -1 second) | 0001-01-01 00:00:01
date_sub('0001-01-01',INTERVAL -1 year) | 0002-01-01
date_sub('0001-1-1 00:00:00', INTERVAL 1 second) | 0000-00-00 23:59:59
date_sub('0001-1-1', INTERVAL 1 day) | 0000-00-00
date_sub('0001-12-31',INTERVAL -1 day) | 0002-01-01
date_sub('0001-12-31',INTERVAL -1 month) | 0002-01-31
date_sub('00010101', INTERVAL -367 day) |
date_sub('10000-1-1', INTERVAL 1 day) |
date_sub('1999-12-31 23:00:00',INTERVAL -1 hour) | 2000-01-01 00:00:00
date_sub('1999-12-31 23:59:00',INTERVAL -1 minute) | 2000-01-01 00:00:00
date_sub('1999-12-31 23:59:59',INTERVAL -1 second) | 2000-01-01 00:00:00
date_sub('1999-12-31',INTERVAL -1 day) | 2000-01-01
date_sub('1999-12-31',INTERVAL -1 year) | 2000-12-31
date_sub('2021-12-31',INTERVAL -1 day) | 2022-01-01
date_sub('9998-12-31',INTERVAL -1 day) | 9999-01-01
date_sub('9999-12-31 12:12:12',INTERVAL 1 hour) | 9999-12-31 11:12:12
date_sub('9999-12-31 12:12:12',INTERVAL 1 minute) | 9999-12-31 12:11:12
date_sub('9999-12-31 12:12:12',INTERVAL 1 second) | 9999-12-31 12:12:11
date_sub('9999-12-31 23:00:00', INTERVAL -1 hour) |
date_sub('9999-12-31 23:59:00', INTERVAL -1 minute) |
date_sub('9999-12-31 23:59:59', INTERVAL -1 second) |
date_sub('9999-12-31', INTERVAL -1 day) |
date_sub('9999-12-31', INTERVAL -1 month) |
date_sub('9999-12-31', INTERVAL -1 year) |
date_sub('9999-12-31',INTERVAL 1 day) | 9999-12-30
date_sub('9999-12-31',INTERVAL 1 hour) | 9999-12-30 23:00:00
date_sub('9999-12-31',INTERVAL 1 minute) | 9999-12-30 23:59:00
date_sub('9999-12-31',INTERVAL 1 month) | 9999-11-30
date_sub('9999-12-31',INTERVAL 1 second) | 9999-12-30 23:59:59
date_sub('9999-12-31',INTERVAL 1 year) | 9998-12-31
date_sub(0, INTERVAL 100 second) |
date_sub(101, INTERVAL 1 year) | 1999-01-01
date_sub(101, INTERVAL 100 second) | 1999-12-31 23:58:20
date_sub(cast('9999-12-31 12:12:12' as datetime),INTERVAL -1 second) | 9999-12-31 12:12:13
date_sub(date'0001-01-01',INTERVAL -1 year) | 0002-01-01
date_sub(null, INTERVAL 1 day) |
date_sub(time'-838:59:59', INTERVAL 1 second) |
--? date_sub(time'12:12:12', INTERVAL -1 day) | .* 12:12:12
date_sub(time'12:12:12', INTERVAL -1 hour) | 13:12:12
date_sub(time'12:12:12', INTERVAL -1 minute) | 12:13:12
date_sub(time'12:12:12', INTERVAL -1 second) | 12:12:13
--? date_sub(time'12:12:12', INTERVAL 1 day) | .* 12:12:12
date_sub(time'12:12:12', INTERVAL 1 hour) | 11:12:12
date_sub(time'12:12:12', INTERVAL 1 minute) | 12:11:12
date_sub(time'12:12:12', INTERVAL 1 second) | 12:12:11
date_sub(time'838:59:59', INTERVAL -1 second) |
date_sub(time'838:59:59', INTERVAL 1 second) | 838:59:58
from_days('1111111111111111111') | 0000-00-00
from_days('2000000') | 5475-10-25
from_days('3652499') | 10000-03-15
from_days('366') | 0001-01-01
from_days(-1) | 0000-00-00
from_days(0) | 0000-00-00
from_days(1111111111111111111) | 0000-00-00
from_days(2000000) | 5475-10-25
from_days(365) | 0000-00-00
from_days(3652499) | 10000-03-15
from_days(366) | 0001-01-01
from_days(null) |
timestampdiff(day, '0000-1-1', '9999-12-31') | 3652423
timestampdiff(day, '9999-12-31', '0000-12-31') | -3652058
timestampdiff(day, time'-838:59:59', time'838:59:59') | 69
timestampdiff(hour, '0000-1-1', '0000-1-2') | 24
timestampdiff(hour, '0000-1-1', '9999-12-31') | -87649415
timestampdiff(hour, time'-838:59:59', time'838:59:59') | 1677
timestampdiff(microsecond, '0000-1-1 00:00:00', '0000-1-2') | 86400000000
timestampdiff(microsecond, '0000-1-1', '9999-12-31') | 315569433257000000
timestampdiff(microsecond, '10000-1-1', '2021-11-12') |
timestampdiff(microsecond, '2021-11-12', '10000-1-1') |
timestampdiff(microsecond, '20211112121212.999999', '20220912111111.999999') | 26261939000000
timestampdiff(microsecond, '20211112121212.999999', 101) | -690034332999999
--?.*
--?.*
timestampdiff(microsecond, 'abc', '2021-11-12') |
timestampdiff(microsecond, 101, '20211112121212.999999') | 690034332999999
timestampdiff(microsecond, 101, 99991231235959.999999) | 252455615999999999
timestampdiff(microsecond, 99991231235959.999999, 101) | -252455615999999999
--?.*
--?.*
timestampdiff(microsecond, time'-838:59:59', time'838:59:59') | 6040798000000
--?.*
--?.*
--?.*
timestampdiff(minute, '0000-1-1 00:00:00', '0000-1-2') | 1440
timestampdiff(minute, '0000-1-1', '9999-12-31') | 5259490554
timestampdiff(minute, time'-838:59:59', time'838:59:59') | 100679
timestampdiff(month, '0000-1-1', '9999-12-31') | 119999
timestampdiff(month, '9999-12-31', '0000-12-31') | -119987
timestampdiff(month, time'-838:59:59', time'838:59:59') | 2
timestampdiff(quarter, '0000-1-1', '9999-12-31') | 39999
timestampdiff(quarter, '9999-12-31', '0000-12-31') | -39995
timestampdiff(quarter, time'-838:59:59', time'838:59:59') | 0
timestampdiff(second, '0000-1-1 00:00:00', '0000-1-2') | 86400
timestampdiff(second, '0000-1-1', '9999-12-31') | 315569433257
timestampdiff(second, time'-838:59:59', time'838:59:59') | 6040798
timestampdiff(week, '0000-1-1', '9999-12-31') | 521774
timestampdiff(week, '9999-12-31', '0000-12-31') | -521722
timestampdiff(week, '9999-12-31', null) |
timestampdiff(week, null, '9999-12-31') |
timestampdiff(week, null, null) |
timestampdiff(week, time'-838:59:59', time'838:59:59') | 9
timestampdiff(year, '0000-1-1', '9999-12-31') | 9999
timestampdiff(year, '9999-12-31', '0000-12-31') | -9998
timestampdiff(year, time'-838:59:59', time'838:59:59') | 0
(321 rows)
drop table test;
-- test timediff(date,unknown)
select timediff(date'2022-01-01','2022-01-02');
timediff
-----------
-24:00:00
(1 row)
select timediff('2022-01-01',date'2022-01-02');
timediff
-----------
-24:00:00
(1 row)
-- test timediff unknown入参结果错误
select timediff(date'2022-12-12', 'asdcf');
WARNING: invalid input syntax for type date: "asdcf"
CONTEXT: referenced column: timediff
timediff
----------
(1 row)
select timediff(time'11:11:11', 'asdcf');
WARNING: Truncated incorrect time value: "asdcf"
CONTEXT: referenced column: timediff
timediff
----------
11:11:11
(1 row)
select timediff('2022-12-12', '00:00:00');
WARNING: invalid input syntax for type time: "2022-12-12"
CONTEXT: referenced column: timediff
timediff
----------
00:20:22
(1 row)
select timediff('0000-00-00', time'00:00:01');
WARNING: Truncated incorrect time value: "0000-00-00"
CONTEXT: referenced column: timediff
timediff
-----------
-00:00:01
(1 row)
select timediff(time'00:00:01', '0000-00-00');
WARNING: Truncated incorrect time value: "0000-00-00"
CONTEXT: referenced column: timediff
timediff
----------
00:00:01
(1 row)
select timediff('0000-00-00', '00:00:00');
WARNING: invalid input syntax for type time: "0000-00-00"
CONTEXT: referenced column: timediff
timediff
----------
00:00:00
(1 row)
select timediff('00:00:00', '0000-00-00');
WARNING: invalid input syntax for type time: "0000-00-00"
CONTEXT: referenced column: timediff
timediff
----------
00:00:00
(1 row)
select timediff('0000-00-00', '0000-00-00');
WARNING: invalid input syntax for type time: "0000-00-00"
CONTEXT: referenced column: timediff
WARNING: invalid input syntax for type time: "0000-00-00"
CONTEXT: referenced column: timediff
timediff
----------
00:00:00
(1 row)
-- 测试time_to_sec异常边界
select time_to_sec(8385960);
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(8385959);
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(-8385960);
WARNING: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-8385959);
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(10000101000000);
time_to_sec
-------------
0
(1 row)
select time_to_sec(10000100000000);
WARNING: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(100000101000000);
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(99999999999999);
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(99990100000000);
WARNING: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(20220101010101);
time_to_sec
-------------
3661
(1 row)
select time_to_sec(99991231235959);
time_to_sec
-------------
86399
(1 row)
select time_to_sec(99991231240000);
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(10000101000001);
time_to_sec
-------------
1
(1 row)
select time_to_sec(10000101000059);
time_to_sec
-------------
59
(1 row)
select time_to_sec(10000101000060);
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(0);
time_to_sec
-------------
0
(1 row)
select time_to_sec(100000000000000);
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('8385960');
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('8385959');
time_to_sec
-------------
3020399
(1 row)
select time_to_sec('-8385960');
WARNING: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('-8385959');
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec('10000101000000');
time_to_sec
-------------
0
(1 row)
select time_to_sec('10000100000000');
time_to_sec
-------------
0
(1 row)
select time_to_sec('100000101000000');
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
36000
(1 row)
select time_to_sec('99999999999999');
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('99990100000000');
time_to_sec
-------------
0
(1 row)
select time_to_sec('20220101010101');
time_to_sec
-------------
3661
(1 row)
select time_to_sec('99991231235959');
time_to_sec
-------------
86399
(1 row)
select time_to_sec('99991231240000');
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('10000101000001');
time_to_sec
-------------
1
(1 row)
select time_to_sec('10000101000059');
time_to_sec
-------------
59
(1 row)
select time_to_sec('10000101000060');
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec('0');
time_to_sec
-------------
0
(1 row)
select time_to_sec('100000000000000');
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
0
(1 row)
select time_to_sec(8385960.11);
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(8385959.11);
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(-8385960.11);
WARNING: Truncated incorrect time value: "-8385960.11"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-8385959.11);
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(10000101000000.11);
time_to_sec
-------------
0
(1 row)
select time_to_sec(10000100000000.11);
WARNING: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(100000101000000.11);
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(99999999999999.11);
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(99990100000000.11);
WARNING: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(20220101010101.11);
time_to_sec
-------------
3661
(1 row)
select time_to_sec(99991231235959.11);
time_to_sec
-------------
86399
(1 row)
select time_to_sec(99991231240000.11);
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(10000101000001.11);
time_to_sec
-------------
1
(1 row)
select time_to_sec(10000101000059.11);
time_to_sec
-------------
59
(1 row)
select time_to_sec(10000101000060.11);
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(0.11);
time_to_sec
-------------
0
(1 row)
select time_to_sec(100000000000000.11);
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(10000101000001.99999);
time_to_sec
-------------
1
(1 row)
select time_to_sec(10000101000001.999999);
time_to_sec
-------------
1
(1 row)
select time_to_sec(10000101000001.9999994);
time_to_sec
-------------
1
(1 row)
select time_to_sec(10000101000001.9999995);
time_to_sec
-------------
2
(1 row)
select time_to_sec(10000101000001.999999999);
time_to_sec
-------------
2
(1 row)
select time_to_sec(8385959.99999);
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(8385959.999999);
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(8385959.9999994);
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(8385959.9999995);
WARNING: Truncated incorrect time value: "8385959.9999995"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(8385959.999999999);
WARNING: Truncated incorrect time value: "8385959.999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
3020399
(1 row)
select time_to_sec(-10000101000001.99999);
WARNING: Truncated incorrect time value: "-10000101000001.99999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-10000101000001.999999);
WARNING: Truncated incorrect time value: "-10000101000001.999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-10000101000001.999994);
WARNING: Truncated incorrect time value: "-10000101000001.999994"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-10000101000001.999995);
WARNING: Truncated incorrect time value: "-10000101000001.999995"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-10000101000001.999999999);
WARNING: Truncated incorrect time value: "-10000101000001.999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
select time_to_sec(-8385959.99999);
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(-8385959.999999);
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(-8385959.9999994);
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(-8385959.9999995);
WARNING: Truncated incorrect time value: "-8385959.9999995"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(-8385959.999999999);
WARNING: Truncated incorrect time value: "-8385959.999999999"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
-3020399
(1 row)
select time_to_sec(-10000101000001);
WARNING: Truncated incorrect time value: "-10000101000001"
CONTEXT: referenced column: time_to_sec
time_to_sec
-------------
(1 row)
-- 严格模式 insert
create table test2(funcname text, result text);
set dolphin.sql_mode = 'sql_mode_strict,sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
insert into test2 values ('time_to_sec(100000000000000)', time_to_sec(100000000000000));
ERROR: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000100000000)', time_to_sec(10000100000000));
ERROR: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000)', time_to_sec(99990100000000));
ERROR: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''100000000000000'')', time_to_sec('100000000000000'));
ERROR: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''10000100000000'')', time_to_sec('10000100000000'));
insert into test2 values ('time_to_sec(''99990100000000'')', time_to_sec('99990100000000'));
insert into test2 values ('time_to_sec(''8385960'')', time_to_sec('8385960'));
ERROR: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''8385959'')', time_to_sec('8385959'));
insert into test2 values ('time_to_sec(''-8385960'')', time_to_sec('-8385960'));
ERROR: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''-8385959'')', time_to_sec('-8385959'));
insert into test2 values ('time_to_sec(''10000101000000'')', time_to_sec('10000101000000'));
insert into test2 values ('time_to_sec(''10000100000000'')', time_to_sec('10000100000000'));
insert into test2 values ('time_to_sec(''100000101000000'')', time_to_sec('100000101000000'));
ERROR: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''99999999999999'')', time_to_sec('99999999999999'));
ERROR: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''99990100000000'')', time_to_sec('99990100000000'));
insert into test2 values ('time_to_sec(''20220101010101'')', time_to_sec('20220101010101'));
insert into test2 values ('time_to_sec(''99991231235959'')', time_to_sec('99991231235959'));
insert into test2 values ('time_to_sec(''99991231240000'')', time_to_sec('99991231240000'));
ERROR: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''10000101000001'')', time_to_sec('10000101000001'));
insert into test2 values ('time_to_sec(''10000101000059'')', time_to_sec('10000101000059'));
insert into test2 values ('time_to_sec(''10000101000060'')', time_to_sec('10000101000060'));
ERROR: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''0'')', time_to_sec('0'));
insert into test2 values ('time_to_sec(''100000000000000'')', time_to_sec('100000000000000'));
ERROR: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385960)', time_to_sec(8385960));
ERROR: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385959)', time_to_sec(8385959));
insert into test2 values ('time_to_sec(-8385960)', time_to_sec(-8385960));
ERROR: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(-8385959)', time_to_sec(-8385959));
insert into test2 values ('time_to_sec(10000101000000)', time_to_sec(10000101000000));
insert into test2 values ('time_to_sec(10000100000000)', time_to_sec(10000100000000));
ERROR: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(100000101000000)', time_to_sec(100000101000000));
ERROR: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99999999999999)', time_to_sec(99999999999999));
ERROR: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000)', time_to_sec(99990100000000));
ERROR: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(20220101010101)', time_to_sec(20220101010101));
insert into test2 values ('time_to_sec(99991231235959)', time_to_sec(99991231235959));
insert into test2 values ('time_to_sec(99991231240000)', time_to_sec(99991231240000));
ERROR: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000101000001)', time_to_sec(10000101000001));
insert into test2 values ('time_to_sec(10000101000059)', time_to_sec(10000101000059));
insert into test2 values ('time_to_sec(10000101000060)', time_to_sec(10000101000060));
ERROR: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(0)', time_to_sec(0));
insert into test2 values ('time_to_sec(100000000000000)', time_to_sec(100000000000000));
ERROR: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385960.11)', time_to_sec(8385960.11));
ERROR: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385959.11)', time_to_sec(8385959.11));
insert into test2 values ('time_to_sec(-8385960.11)', time_to_sec(-8385960.11));
ERROR: Truncated incorrect time value: "-8385960.11"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(-8385959.11)', time_to_sec(-8385959.11));
insert into test2 values ('time_to_sec(10000101000000.11)', time_to_sec(10000101000000.11));
insert into test2 values ('time_to_sec(10000100000000.11)', time_to_sec(10000100000000.11));
ERROR: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(100000101000000.11)', time_to_sec(100000101000000.11));
ERROR: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99999999999999.11)', time_to_sec(99999999999999.11));
ERROR: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000.11)', time_to_sec(99990100000000.11));
ERROR: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(20220101010101.11)', time_to_sec(20220101010101.11));
insert into test2 values ('time_to_sec(99991231235959.11)', time_to_sec(99991231235959.11));
insert into test2 values ('time_to_sec(99991231240000.11)', time_to_sec(99991231240000.11));
ERROR: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000101000001.11)', time_to_sec(10000101000001.11));
insert into test2 values ('time_to_sec(10000101000059.11)', time_to_sec(10000101000059.11));
insert into test2 values ('time_to_sec(10000101000060.11)', time_to_sec(10000101000060.11));
ERROR: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(0.11)', time_to_sec(0.11));
insert into test2 values ('time_to_sec(100000000000000.11)', time_to_sec(100000000000000.11));
ERROR: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(10000101000001.99999)', time_to_sec(10000101000001.99999));
insert into test2 values('time_to_sec(10000101000001.999999)', time_to_sec(10000101000001.999999));
insert into test2 values('time_to_sec(10000101000001.9999994)', time_to_sec(10000101000001.9999994));
insert into test2 values('time_to_sec(10000101000001.9999995)', time_to_sec(10000101000001.9999995));
insert into test2 values('time_to_sec(10000101000001.999999999)', time_to_sec(10000101000001.999999999));
insert into test2 values('time_to_sec(8385959.99999)', time_to_sec(8385959.99999));
insert into test2 values('time_to_sec(8385959.999999)', time_to_sec(8385959.999999));
insert into test2 values('time_to_sec(8385959.9999994)', time_to_sec(8385959.9999994));
insert into test2 values('time_to_sec(8385959.9999995)', time_to_sec(8385959.9999995));
ERROR: Truncated incorrect time value: "8385959.9999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(8385959.999999999)', time_to_sec(8385959.999999999));
ERROR: Truncated incorrect time value: "8385959.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.99999)', time_to_sec(-10000101000001.99999));
ERROR: Truncated incorrect time value: "-10000101000001.99999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999999)', time_to_sec(-10000101000001.999999));
ERROR: Truncated incorrect time value: "-10000101000001.999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999994)', time_to_sec(-10000101000001.999994));
ERROR: Truncated incorrect time value: "-10000101000001.999994"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999995)', time_to_sec(-10000101000001.999995));
ERROR: Truncated incorrect time value: "-10000101000001.999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999999999)', time_to_sec(-10000101000001.999999999));
ERROR: Truncated incorrect time value: "-10000101000001.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-8385959.99999)', time_to_sec(-8385959.99999));
insert into test2 values('time_to_sec(-8385959.999999)', time_to_sec(-8385959.999999));
insert into test2 values('time_to_sec(-8385959.9999994)', time_to_sec(-8385959.9999994));
insert into test2 values('time_to_sec(-8385959.9999995)', time_to_sec(-8385959.9999995));
ERROR: Truncated incorrect time value: "-8385959.9999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-8385959.999999999)', time_to_sec(-8385959.999999999));
ERROR: Truncated incorrect time value: "-8385959.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001)', time_to_sec(-10000101000001));
ERROR: Truncated incorrect time value: "-10000101000001"
CONTEXT: referenced column: result
select * from test2 order by funcname;
funcname | result
---------------------------------------+----------
time_to_sec('-8385959') | -3020399
time_to_sec('0') | 0
time_to_sec('10000100000000') | 0
time_to_sec('10000100000000') | 0
time_to_sec('10000101000000') | 0
time_to_sec('10000101000001') | 1
time_to_sec('10000101000059') | 59
time_to_sec('20220101010101') | 3661
time_to_sec('8385959') | 3020399
time_to_sec('99990100000000') | 0
time_to_sec('99990100000000') | 0
time_to_sec('99991231235959') | 86399
time_to_sec(-8385959) | -3020399
time_to_sec(-8385959.11) | -3020399
time_to_sec(-8385959.99999) | -3020399
time_to_sec(-8385959.999999) | -3020399
time_to_sec(-8385959.9999994) | -3020399
time_to_sec(0) | 0
time_to_sec(0.11) | 0
time_to_sec(10000101000000) | 0
time_to_sec(10000101000000.11) | 0
time_to_sec(10000101000001) | 1
time_to_sec(10000101000001.11) | 1
time_to_sec(10000101000001.99999) | 1
time_to_sec(10000101000001.999999) | 1
time_to_sec(10000101000001.9999994) | 1
time_to_sec(10000101000001.9999995) | 2
time_to_sec(10000101000001.999999999) | 2
time_to_sec(10000101000059) | 59
time_to_sec(10000101000059.11) | 59
time_to_sec(20220101010101) | 3661
time_to_sec(20220101010101.11) | 3661
time_to_sec(8385959) | 3020399
time_to_sec(8385959.11) | 3020399
time_to_sec(8385959.99999) | 3020399
time_to_sec(8385959.999999) | 3020399
time_to_sec(8385959.9999994) | 3020399
time_to_sec(99991231235959) | 86399
time_to_sec(99991231235959.11) | 86399
(39 rows)
-- 非严格模式 insert
set dolphin.sql_mode = 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
delete from test2 where 1=1;
insert into test2 values ('time_to_sec(100000000000000)', time_to_sec(100000000000000));
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000100000000)', time_to_sec(10000100000000));
WARNING: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000)', time_to_sec(99990100000000));
WARNING: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''100000000000000'')', time_to_sec('100000000000000'));
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''10000100000000'')', time_to_sec('10000100000000'));
insert into test2 values ('time_to_sec(''99990100000000'')', time_to_sec('99990100000000'));
insert into test2 values ('time_to_sec(''8385960'')', time_to_sec('8385960'));
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''8385959'')', time_to_sec('8385959'));
insert into test2 values ('time_to_sec(''-8385960'')', time_to_sec('-8385960'));
WARNING: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''-8385959'')', time_to_sec('-8385959'));
insert into test2 values ('time_to_sec(''10000101000000'')', time_to_sec('10000101000000'));
insert into test2 values ('time_to_sec(''10000100000000'')', time_to_sec('10000100000000'));
insert into test2 values ('time_to_sec(''100000101000000'')', time_to_sec('100000101000000'));
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''99999999999999'')', time_to_sec('99999999999999'));
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''99990100000000'')', time_to_sec('99990100000000'));
insert into test2 values ('time_to_sec(''20220101010101'')', time_to_sec('20220101010101'));
insert into test2 values ('time_to_sec(''99991231235959'')', time_to_sec('99991231235959'));
insert into test2 values ('time_to_sec(''99991231240000'')', time_to_sec('99991231240000'));
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''10000101000001'')', time_to_sec('10000101000001'));
insert into test2 values ('time_to_sec(''10000101000059'')', time_to_sec('10000101000059'));
insert into test2 values ('time_to_sec(''10000101000060'')', time_to_sec('10000101000060'));
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(''0'')', time_to_sec('0'));
insert into test2 values ('time_to_sec(''100000000000000'')', time_to_sec('100000000000000'));
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385960)', time_to_sec(8385960));
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385959)', time_to_sec(8385959));
insert into test2 values ('time_to_sec(-8385960)', time_to_sec(-8385960));
WARNING: Truncated incorrect time value: "-8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(-8385959)', time_to_sec(-8385959));
insert into test2 values ('time_to_sec(10000101000000)', time_to_sec(10000101000000));
insert into test2 values ('time_to_sec(10000100000000)', time_to_sec(10000100000000));
WARNING: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(100000101000000)', time_to_sec(100000101000000));
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99999999999999)', time_to_sec(99999999999999));
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000)', time_to_sec(99990100000000));
WARNING: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(20220101010101)', time_to_sec(20220101010101));
insert into test2 values ('time_to_sec(99991231235959)', time_to_sec(99991231235959));
insert into test2 values ('time_to_sec(99991231240000)', time_to_sec(99991231240000));
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000101000001)', time_to_sec(10000101000001));
insert into test2 values ('time_to_sec(10000101000059)', time_to_sec(10000101000059));
insert into test2 values ('time_to_sec(10000101000060)', time_to_sec(10000101000060));
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(0)', time_to_sec(0));
insert into test2 values ('time_to_sec(100000000000000)', time_to_sec(100000000000000));
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385960.11)', time_to_sec(8385960.11));
WARNING: Truncated incorrect time value: "8385960"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(8385959.11)', time_to_sec(8385959.11));
insert into test2 values ('time_to_sec(-8385960.11)', time_to_sec(-8385960.11));
WARNING: Truncated incorrect time value: "-8385960.11"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(-8385959.11)', time_to_sec(-8385959.11));
insert into test2 values ('time_to_sec(10000101000000.11)', time_to_sec(10000101000000.11));
insert into test2 values ('time_to_sec(10000100000000.11)', time_to_sec(10000100000000.11));
WARNING: Truncated incorrect time value: "10000100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(100000101000000.11)', time_to_sec(100000101000000.11));
WARNING: Truncated incorrect time value: "100000101000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99999999999999.11)', time_to_sec(99999999999999.11));
WARNING: Truncated incorrect time value: "99999999999999"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(99990100000000.11)', time_to_sec(99990100000000.11));
WARNING: Truncated incorrect time value: "99990100000000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(20220101010101.11)', time_to_sec(20220101010101.11));
insert into test2 values ('time_to_sec(99991231235959.11)', time_to_sec(99991231235959.11));
insert into test2 values ('time_to_sec(99991231240000.11)', time_to_sec(99991231240000.11));
WARNING: Truncated incorrect time value: "99991231240000"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(10000101000001.11)', time_to_sec(10000101000001.11));
insert into test2 values ('time_to_sec(10000101000059.11)', time_to_sec(10000101000059.11));
insert into test2 values ('time_to_sec(10000101000060.11)', time_to_sec(10000101000060.11));
WARNING: Truncated incorrect time value: "10000101000060"
CONTEXT: referenced column: result
insert into test2 values ('time_to_sec(0.11)', time_to_sec(0.11));
insert into test2 values ('time_to_sec(100000000000000.11)', time_to_sec(100000000000000.11));
WARNING: Truncated incorrect time value: "100000000000000"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(10000101000001.99999)', time_to_sec(10000101000001.99999));
insert into test2 values('time_to_sec(10000101000001.999999)', time_to_sec(10000101000001.999999));
insert into test2 values('time_to_sec(10000101000001.9999994)', time_to_sec(10000101000001.9999994));
insert into test2 values('time_to_sec(10000101000001.9999995)', time_to_sec(10000101000001.9999995));
insert into test2 values('time_to_sec(10000101000001.999999999)', time_to_sec(10000101000001.999999999));
insert into test2 values('time_to_sec(8385959.99999)', time_to_sec(8385959.99999));
insert into test2 values('time_to_sec(8385959.999999)', time_to_sec(8385959.999999));
insert into test2 values('time_to_sec(8385959.9999994)', time_to_sec(8385959.9999994));
insert into test2 values('time_to_sec(8385959.9999995)', time_to_sec(8385959.9999995));
WARNING: Truncated incorrect time value: "8385959.9999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(8385959.999999999)', time_to_sec(8385959.999999999));
WARNING: Truncated incorrect time value: "8385959.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.99999)', time_to_sec(-10000101000001.99999));
WARNING: Truncated incorrect time value: "-10000101000001.99999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999999)', time_to_sec(-10000101000001.999999));
WARNING: Truncated incorrect time value: "-10000101000001.999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999994)', time_to_sec(-10000101000001.999994));
WARNING: Truncated incorrect time value: "-10000101000001.999994"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999995)', time_to_sec(-10000101000001.999995));
WARNING: Truncated incorrect time value: "-10000101000001.999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001.999999999)', time_to_sec(-10000101000001.999999999));
WARNING: Truncated incorrect time value: "-10000101000001.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-8385959.99999)', time_to_sec(-8385959.99999));
insert into test2 values('time_to_sec(-8385959.999999)', time_to_sec(-8385959.999999));
insert into test2 values('time_to_sec(-8385959.9999994)', time_to_sec(-8385959.9999994));
insert into test2 values('time_to_sec(-8385959.9999995)', time_to_sec(-8385959.9999995));
WARNING: Truncated incorrect time value: "-8385959.9999995"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-8385959.999999999)', time_to_sec(-8385959.999999999));
WARNING: Truncated incorrect time value: "-8385959.999999999"
CONTEXT: referenced column: result
insert into test2 values('time_to_sec(-10000101000001)', time_to_sec(-10000101000001));
WARNING: Truncated incorrect time value: "-10000101000001"
CONTEXT: referenced column: result
select * from test2 order by funcname;
funcname | result
----------------------------------------+----------
time_to_sec('-8385959') | -3020399
time_to_sec('-8385960') |
time_to_sec('0') | 0
time_to_sec('100000000000000') | 0
time_to_sec('100000000000000') | 0
time_to_sec('100000101000000') | 36000
time_to_sec('10000100000000') | 0
time_to_sec('10000100000000') | 0
time_to_sec('10000101000000') | 0
time_to_sec('10000101000001') | 1
time_to_sec('10000101000059') | 59
time_to_sec('10000101000060') |
time_to_sec('20220101010101') | 3661
time_to_sec('8385959') | 3020399
time_to_sec('8385960') |
time_to_sec('99990100000000') | 0
time_to_sec('99990100000000') | 0
time_to_sec('99991231235959') | 86399
time_to_sec('99991231240000') |
time_to_sec('99999999999999') |
time_to_sec(-10000101000001) |
time_to_sec(-10000101000001.99999) |
time_to_sec(-10000101000001.999994) |
time_to_sec(-10000101000001.999995) |
time_to_sec(-10000101000001.999999) |
time_to_sec(-10000101000001.999999999) |
time_to_sec(-8385959) | -3020399
time_to_sec(-8385959.11) | -3020399
time_to_sec(-8385959.99999) | -3020399
time_to_sec(-8385959.999999) | -3020399
time_to_sec(-8385959.9999994) | -3020399
time_to_sec(-8385959.9999995) | -3020399
time_to_sec(-8385959.999999999) | -3020399
time_to_sec(-8385960) |
time_to_sec(-8385960.11) |
time_to_sec(0) | 0
time_to_sec(0.11) | 0
time_to_sec(100000000000000) |
time_to_sec(100000000000000) |
time_to_sec(100000000000000.11) |
time_to_sec(100000101000000) |
time_to_sec(100000101000000.11) |
time_to_sec(10000100000000) |
time_to_sec(10000100000000) |
time_to_sec(10000100000000.11) |
time_to_sec(10000101000000) | 0
time_to_sec(10000101000000.11) | 0
time_to_sec(10000101000001) | 1
time_to_sec(10000101000001.11) | 1
time_to_sec(10000101000001.99999) | 1
time_to_sec(10000101000001.999999) | 1
time_to_sec(10000101000001.9999994) | 1
time_to_sec(10000101000001.9999995) | 2
time_to_sec(10000101000001.999999999) | 2
time_to_sec(10000101000059) | 59
time_to_sec(10000101000059.11) | 59
time_to_sec(10000101000060) |
time_to_sec(10000101000060.11) |
time_to_sec(20220101010101) | 3661
time_to_sec(20220101010101.11) | 3661
time_to_sec(8385959) | 3020399
time_to_sec(8385959.11) | 3020399
time_to_sec(8385959.99999) | 3020399
time_to_sec(8385959.999999) | 3020399
time_to_sec(8385959.9999994) | 3020399
time_to_sec(8385959.9999995) | 3020399
time_to_sec(8385959.999999999) | 3020399
time_to_sec(8385960) |
time_to_sec(8385960.11) |
time_to_sec(99990100000000) |
time_to_sec(99990100000000) |
time_to_sec(99990100000000.11) |
time_to_sec(99991231235959) | 86399
time_to_sec(99991231235959.11) | 86399
time_to_sec(99991231240000) |
time_to_sec(99991231240000.11) |
time_to_sec(99999999999999) |
time_to_sec(99999999999999.11) |
(78 rows)
drop table test2;
\c contrib_regression
set dolphin.b_compatibility_mode = off;
DROP DATABASE b_datetime_func_test3;