首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Teradata SQL Assistant日期插入

Teradata SQL Assistant日期插入
EN

Stack Overflow用户
提问于 2016-02-02 05:33:21
回答 2查看 10.7K关注 0票数 0

上下文为Teradata SQL Assistant

已成功创建下表:

代码语言:javascript
复制
CREATE VOLATILE TABLE RSN_WEEKLY_TMP, NO LOG
(
EXPLICIT_DATE DATE FORMAT 'MM/DD/YYYY'
)
PRIMARY INDEX (EXPLICIT_DATE)
ON COMMIT PRESERVE ROWS;

1)以下插入成功:

代码语言:javascript
复制
INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (CURRENT_DATE);

2)以下插入不起作用,返回错误: INSERT Failed 26665 Invalid date。

代码语言:javascript
复制
INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (02/02/2016);

3)但是,如果我使用字符串'date value‘并将其转换为日期,则它可以工作。

代码语言:javascript
复制
INSERT INTO JOCOOPER.RSN_WEEKLY_TMP (EXPLICIT_DATE) VALUES (CAST('02/03/2016' AS DATE FORMAT 'MM/DD/YYYY') );

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

EN

回答 2

Stack Overflow用户

发布于 2016-02-02 05:42:28

02/02/2016是一个整数计算,2除以2除以2016,结果是零,当然这不是一个有效的日期。

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

唯一推荐的(也是最短的)方法是使用标准SQL日期文字:

代码语言:javascript
复制
DATE '2016-02-03'

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

票数 1
EN

Stack Overflow用户

发布于 2016-02-02 08:43:54

实际上,这种格式也适用

代码语言:javascript
复制
insert into datecol select '2015/12/31';

在您的示例中:

代码语言:javascript
复制
CREATE VOLATILE TABLE RSN_WEEKLY_TMP, NO LOG
(
--EXPLICIT_DATE DATE FORMAT 'MM/DD/YYYY'
EXPLICIT_DATE DATE
)
PRIMARY INDEX (EXPLICIT_DATE)
ON COMMIT PRESERVE ROWS;

INSERT INTO RSN_WEEKLY_TMP (EXPLICIT_DATE) select '2016/02/02';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35140762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档