Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将VCHAR转换为Teradata中的时间戳或日期_Sql_Date_Timestamp_Teradata - Fatal编程技术网

Sql 将VCHAR转换为Teradata中的时间戳或日期

Sql 将VCHAR转换为Teradata中的时间戳或日期,sql,date,timestamp,teradata,Sql,Date,Timestamp,Teradata,我使用fastload上传了一个表,希望将event_time列转换为时间戳,或者只获取日期,因为我不需要时间组件 文本格式为“MM/DD/YYYY HH:MM:SS AM/PM”,例如,“05/24/2013 08:12:00 AM” 我试过了 CAST(event_time AS TIMESTAMP(0)) 及 但他们不为我工作。我得到的错误是无效的时间戳/日期 作为一个额外的问题, 我认为数据中没有任何异常值(即,每一行的格式如上所述),但如果有,我如何解释这些错误?或者Teradat

我使用fastload上传了一个表,希望将event_time列转换为时间戳,或者只获取日期,因为我不需要时间组件

文本格式为“MM/DD/YYYY HH:MM:SS AM/PM”,例如,“05/24/2013 08:12:00 AM”

我试过了

CAST(event_time AS TIMESTAMP(0)) 

但他们不为我工作。我得到的错误是无效的时间戳/日期

作为一个额外的问题,
我认为数据中没有任何异常值(即,每一行的格式如上所述),但如果有,我如何解释这些错误?或者Teradata会自动传递这些行吗?

强制转换不起作用,因为这不是默认的时间戳/日期格式

最简单的方法是使用自TD14以来支持的“截止日期”功能:

TO_DATE(event_time, 'MM/DD/YYYY HH:MM:SS AM')
在TD14之前,它是:

CAST(CAST(event_time AS TIMESTAMP FORMAT 'MM/DD/YYYYbHH:MI:SSbT') AS DATE)
关于异常值,它们将导致“无效日期/时间戳”错误。当您在FastLoad期间将它们转换为时间戳时,这些行将无法加载,并将插入ET错误表。但不能在FL中使用较新的强制转换语法,必须是旧的Teradata样式强制转换:

:event_time (TIMESTAMP, FORMAT 'MM/DD/YYYYbHH:MI:SSbT')
:event_time (TIMESTAMP, FORMAT 'MM/DD/YYYYbHH:MI:SSbT')