Конвертировать Oracle to_date ('24 -03-20 ',' DD-MM-RR ') в снежинку - PullRequest
1 голос
/ 24 марта 2020

Мне нужна твоя маленькая помощь. Я должен использовать функцию to_date ('24 -03-20 ',' DD-MM-RR ') Oracle в снежинке. Оба выхода должны совпадать. Может ли кто-нибудь, пожалуйста, помогите мне.

1 Ответ

6 голосов
/ 24 марта 2020

Будьте осторожны с YY, так как RR в Oracle вел себя иначе, чем YY Снежинки. RR за Oracle фактически превратил два ди git года в модель, «ближайшую к 2000 году», например, строка RR 49 дала вам 2049, строка RR 51 дала вам 1951.

Если вам нужно RR "функциональность", см. Ссылку на параметр сеанса TWO_DIGIT_CENTURY_START по этой ссылке:

https://docs.snowflake.com/en/sql-reference/functions-conversion.html#date и функции форматирования времени в преобразованиях

Этот параметр дополнительно определяется здесь:

https://docs.snowflake.com/en/sql-reference/parameters.html#label -two-di git -century-start

Итак, вы можете использовать YY, но вы перед выполнением выбора нужно выполнить команду ALTER SESSION, например:

ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1970; --the default
SELECT to_date('24-03-20', 'DD-MM-YY');           --2020-03-24

ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1900; --not what you want
SELECT to_date('24-03-20', 'DD-MM-YY');           --1920-03-24


ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1950; --RR like
SELECT to_date('24-03-20', 'DD-MM-YY');           --2020-03-24
SELECT to_date('24-03-49', 'DD-MM-YY');           --2049-03-24
SELECT to_date('24-03-50', 'DD-MM-YY');           --1950-03-24

Надеюсь, это поможет ... Rich

...