Snowflake cloud data platform 将Oracle to#u date(';24-03-20';,';DD-MM-RR';)转换为雪花

Snowflake cloud data platform 将Oracle to#u date(';24-03-20';,';DD-MM-RR';)转换为雪花,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我需要你的小小帮助。我必须在snowflake中使用to_date('24-03-20','DD-MM-RR')Oracle函数。两个输出应该是匹配的。有人能帮我吗。小心YY,因为Oracle中的RR与Snowflake的YY表现不同。Oracle中的RR基本上将两位数年份转换为“最接近2000年”的模型,例如49的RR字符串表示2049年,51的RR字符串表示1951年 如果需要RR“功能”,请参阅此链接中对两位数字的启动会话参数的引用: 此处进一步定义了该参数: 因此,您可以使用YY,但

我需要你的小小帮助。我必须在snowflake中使用to_date('24-03-20','DD-MM-RR')Oracle函数。两个输出应该是匹配的。有人能帮我吗。

小心YY,因为Oracle中的RR与Snowflake的YY表现不同。Oracle中的RR基本上将两位数年份转换为“最接近2000年”的模型,例如49的RR字符串表示2049年,51的RR字符串表示1951年

如果需要RR“功能”,请参阅此链接中对两位数字的启动会话参数的引用:

此处进一步定义了该参数:

因此,您可以使用YY,但在执行select之前需要运行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

小心YY,因为Oracle中的RR与Snowflake的YY表现不同。Oracle中的RR基本上将两位数年份转换为“最接近2000年”的模型,例如49的RR字符串表示2049年,51的RR字符串表示1951年

如果需要RR“功能”,请参阅此链接中对两位数字的启动会话参数的引用:

此处进一步定义了该参数:

因此,您可以使用YY,但在执行select之前需要运行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