[英]Getting error while trying TO_DATE function for procedure conversion
在 Teradata 程序中使用了一个演员 function 作为
cast(<col_name> AS DATE FORMAT 'MM/DD/YY'
它给了我 output 作为“MM/DD/YY”格式的 DATE 数据类型。 我正在尝试在 SNOWFLAKE 中使用类似的 function,这样它就会给我相同的 output。 我尝试过这样的事情
TO_CHAR(TO_DATE(<col_name>,'MM/DD/YY')
它也以该格式给了我 output ,但是每当我运行 Snowflake 程序时,都会在表中插入不同的结果。 这是因为我的代码给我的结果是 varchar 数据类型,而列是 Date 数据类型。 任何关于如何进行这种转换的想法都将受到高度赞赏。
雪花有TRY_DO_DATE ,支持格式:
SELECT col_name, TRY_TO_DATE(col_name, 'MM/DD/YY') AS col_name_casted
FROM tab
您的数据似乎已存储为日期列。 您可以为输入和 output 日期格式设置一个 session 参数,因此如果您有日期的标准表示,则可以在处理中本地使用它:
alter session set DATE_INPUT_FORMAT='MM/DD/YY';
alter session set DATE_OUTPUT_FORMAT='MM/DD/YY';
select <col_name> from table; -- Now will show as MM/DD/YY for date columns
如果您不想这样做,那么要对其进行格式化,您需要将其转换为字符、格式,然后转换为日期:
select to_char(col_name,'MM/DD/YY'); -- converts date to char format
select to_date(to_char(col_name,'MM/DD/YY'),'MM/DD/YY'); -- effectively is a no-op
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.