Как выбрать строку на основе отметки времени в Snowflake SQL - PullRequest
0 голосов
/ 07 апреля 2020

Я изо всех сил пытаюсь получить определенную строку на основе ее точной метки времени.

CREATE TABLE PUBLIC.ERIC( SOME_ROW_ID   INTEGER NOT NULL
                        , MY_TIMESTAMP  TIMESTAMP_NTZ NOT NULL DEFAULT CAST(CURRENT_TIMESTAMP() AS TIMESTAMP_NTZ(9))
                        );

Я вставляю туда строку

INSERT INTO PUBLIC.ERIC(SOME_ROW_ID) VALUES(1);

Я получаю ее ...

SELECT * FROM PUBLIC.ERIC;

Это возвращает значение, подобное этому: "2020-04-07 09:58:51"

Теперь, если я пытаюсь получить эту строку, я пропускаю ее

SELECT * 
  FROM PUBLIC.ERIC
  WHERE MY_TIMESTAMP = CAST('2020-04-07 09:58:51' AS TIMESTAMP_NTZ(9));  

Как я могу получить этот ряд? Я полагаю, что я запутался в метках времени (или точности) ...

Любая помощь с благодарностью!

1 Ответ

2 голосов
/ 07 апреля 2020

timestamp_ntz(9) имеет точность наносекунды, поэтому предложение where также должно иметь точность наносекунды (например, 2020-04-07 10:34:04.426)

...