Teradata SQL助手日期插入

时间:2016-02-01 21:33:21

标签: teradata

Context是Teradata SQL Assistant

成功创建了下表:

CREATE VOLATILE TABLE RSN_WEEKLY_TMP, NO LOG
(
EXPLICIT_DATE DATE FORMAT 'MM/DD/YYYY'
)
PRIMARY INDEX (EXPLICIT_DATE)
ON COMMIT PRESERVE ROWS;

1)以下INSERT成功运行:

INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (CURRENT_DATE);

2)以下INSERT不起作用并返回错误:INSERT失败[26665]日期无效。

INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (02/02/2016);

3)但是,如果我使用字符串'日期值'并将它作为它的工作日期。

INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (CAST('02/03/2016' AS DATE FORMAT 'MM/DD/YYYY') );

我需要知道如何使#2示例工作?请告知?

2 个答案:

答案 0 :(得分:1)

02/02/2016是一个INTEGER计算,到2016年将2除以2,结果为零,当然这不是有效日期。

CAST('02/03/2016' AS DATE FORMAT 'MM/DD/YYYY')有效,因为它告诉解析器如何将字符串转换为DATE。

唯一推荐(和最短)方式是标准SQL DATE文字:

DATE '2016-02-03'

您永远不需要考虑格式,因为只有一种格式:YYYY-MM-DD

答案 1 :(得分:0)

实际上,这种格式也适用

e = {}
for i in range(0,len(length_of_the_row)):
    e[i] = a,b,c,d 

在你的例子中:

insert into datecol select '2015/12/31';