首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Teradata中使用日期

在Teradata中使用日期
EN

Stack Overflow用户
提问于 2018-03-09 05:24:08
回答 1查看 4.2K关注 0票数 0

我正在尝试将一些数据插入到Teradata数据库中,这些信息最初是从Oracle实例导出的,但我对日期有一点问题,以下是数据的示例:

代码语言:javascript
复制
    CO_ID  | CUSTOMER_NAME  | JOIN_DATE
   1022945 | John Carpenter | 07/03/2018 01:55:24 p.m. 

下面是create table语句:

代码语言:javascript
复制
CREATE TABLE transact (
co_id varchar(50),
user_name varchar(50),
join_date date);

Teradata在我每次执行insert语句时都会抛出错误,例如:

代码语言:javascript
复制
expected something between a string and a unicode character ...

如果我必须修改create table或其他技巧,我如何才能在保持日期原始格式的情况下插入信息?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-03-09 05:58:18

在Teradata中,日期是一个日期(没有时间部分)。对于插入,您必须将输入字符串转换为有效的日期。

类似的东西

代码语言:javascript
复制
select cast('07/03/2018' as date format 'DD/MM/YYYY');
select cast(substr(input.join_date,1,10) as date format 'DD/MM/YYYY');

如果将字符串转换为as date,则format子句将描述如何使用字符串部分将其转换为内部日期格式。

如果从日期列中选择,则format子句用于描述所需的输出格式。

代码语言:javascript
复制
select cast( cast('07/03/2018' as date format 'DD/MM/YYYY') as date format 'YYYY-MM-DD')

如果将format子句添加到表定义join_date date 'DD/MM/YYYY'中,则会定义该列的默认格式,当未指定显式格式时,该格式将用作输出格式。

如果还想使用时间部分,则目标列需要是timestamp

代码语言:javascript
复制
select cast( cast(regexp_replace('07/03/2018 01:55:24 p.m.','\.m\.', 'M')
    as timestamp format 'MM/DD/YYBHH:MI:SS BT') as timestamp format 'YYYY-MM-DDBHH:MI:SS')

format phrase documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49182706

复制
相关文章

相似问题

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