Sql 将VCHAR转换为Teradata中的时间戳或日期
我使用fastload上传了一个表,希望将event_time列转换为时间戳,或者只获取日期,因为我不需要时间组件 文本格式为“MM/DD/YYYY HH:MM:SS AM/PM”,例如,“05/24/2013 08:12:00 AM” 我试过了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
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')