我在Teradata中有一个表,它以8种字符的INT字段存储日期,格式如下" YYYYMMDD"所以今天它会存储" 20180308" 。如果我尝试将它作为这样的日期:
CAST(date_field AS DATE FORMAT 'YYYY-MM-DD')
它将日期转换为3450年的某个未来日期。
我认为这个数据不能存储为日期对象是一个错误。反正有没有克服这个故障?不幸的是,我无法改变这一点。
由于
答案 0 :(得分:3)
它不是一个8 字符整数,它是一个8 数字整数。
Teradata使用
存储日期(year - 1900) * 10000
+ (month * 100)
+ day
今天结果为1180308
,20180308
将返回3918-03-08
将其投射到您需要使用的日期
cast(intdate-19000000 as date)
答案 1 :(得分:0)
选择演员表('20180308'作为日期格式'yyyymmdd');