我正在尝试将一些数据插入到Teradata数据库中,这些信息最初是从Oracle实例导出的,但我对日期有一点问题,以下是数据的示例:
CO_ID | CUSTOMER_NAME | JOIN_DATE
1022945 | John Carpenter | 07/03/2018 01:55:24 p.m. 下面是create table语句:
CREATE TABLE transact (
co_id varchar(50),
user_name varchar(50),
join_date date);Teradata在我每次执行insert语句时都会抛出错误,例如:
expected something between a string and a unicode character ...如果我必须修改create table或其他技巧,我如何才能在保持日期原始格式的情况下插入信息?
谢谢。
发布于 2018-03-09 05:58:18
在Teradata中,日期是一个日期(没有时间部分)。对于插入,您必须将输入字符串转换为有效的日期。
类似的东西
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子句用于描述所需的输出格式。
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
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')https://stackoverflow.com/questions/49182706
复制相似问题