默认日期雪花:标识符无效'DATE'



我正在将数据从teradata迁移到Snowflake我已经将teradata的DDL转换为Snowflak(在roboquery中检查(。

当我在Snowflake中运行转换后的ddl时,我在默认值DATE上得到一个错误。

CREATE OR REPLACE TABLE XXX.YYYY 
(
ID NUMBER(8) NOT NULL,
DERN TIMESTAMP(0) ,
OBSDATE TIMESTAMP(0)  NOT NULL,
DATFULL DATE DEFAULT DATE
);

我得到了这个错误:

运行Liquibase时出现意外错误:SQL编译错误:位置25处的错误行5无效标识符"DATE"[失败的SQL:(904(?

为什么会出现此错误-Snowflake使用DATE?

使用current_date是否有任何风险(在@Marcel第一次回答后更新的帖子(。

感谢

我想您想使用CURRENT_DATE作为默认值?

这就是代码:

CREATE OR REPLACE TABLE XXX.YYYY (
ID NUMBER(8) NOT NULL,
DERN TIMESTAMP(0) ,
OBSDATE TIMESTAMP(0)  NOT NULL,
DATFULL DATE DEFAULT CURRENT_DATE);

基于文档Terradata-DEFAULT:

此表单…
默认日期引用

插入…
通过引号指定的日期值作为date列的默认值。


默认当前日期

当前系统日期

Snowflake:支持日期文字(DATE 'some_date'(

CREATE OR REPLACE TABLE YYYY (
ID NUMBER(8) NOT NULL,
DERN TIMESTAMP(0) ,
OBSDATE TIMESTAMP(0)  NOT NULL,
DATFULL DATE DEFAULT DATE '1900-01-01'   -- any specific date here
);

日期和时间常数:

常量(也称为文字(是指固定的数据值。Snowflake支持使用字符串常量来指定固定的日期、时间或时间戳值。字符串常量必须始终包含在分隔符之间。

date '2010-09-14'
time '10:03:56'
timestamp '2009-09-15 10:59:43'

综上所述,取决于要求:DEFAULT DATE 'YYYY-MM-DD'或是否必须是当前日期DEFAULT CURRENT_DATE

相关内容

最新更新