Проблемы с типами данных timestamp_ltz - PullRequest
0 голосов
/ 16 июня 2020

Наблюдение за странной проблемой в Snowflake. в таблице ниже результаты за все годы до 1884-01-01 00: 00: 00.000001000 показывают разные значения

 CREATE TABLE time_tester1(time1 TIMESTAMP_LTZ, time2 TIMESTAMP_LTZ)
 INSERT INTO time_tester1
 values('1884-01-01 00:00:00.000001000','1883-01-01 00:00:00.000001000')

Результат

SELECT * FROM time_tester1

Row     TIME1                                               TIME2
1       1884-01-01 00:00:00.000001000 -05:00                1882-12-31 23:56:02.000001000 -05:00

эта проблема наблюдается для всех лет меньше затем 1884

1 Ответ

3 голосов
/ 16 июня 2020

Кажется, проблема связана с «Днем двух полдня»:

https://dba.stackexchange.com/a/127972

Если вы используете UT C, вы не будете получите такой результат:

CREATE or replace TABLE time_tester1(time1 TIMESTAMP_LTZ, time2 TIMESTAMP_LTZ);
INSERT INTO time_tester1
values('1884-01-01 00:00:00.000001000','1883-01-01 00:00:00.000001000');

SELECT * FROM time_tester1;

+-------------------------------+-------------------------------+
| TIME1                         | TIME2                         |
+-------------------------------+-------------------------------+
| 1884-01-01 00:00:00.000 +0000 | 1883-01-01 00:00:00.000 +0000 |
+-------------------------------+-------------------------------+
...