我正在使用postgres版本
version
PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017
(Red Hat 3.4.2-6.fc3), Redshift 1.0.880
我有一列存储为整数,但运行此查询会导致错误:
样本数据:
dept_dt
20141008
20141008
20141008
20141008
20141008
20141008
20141008
20141121
20141121
20141121
错误:数据值“dept_dt”的格式执行时间无效:1.21s
1条语句失败
运行此查询时:
select top 10 dept_dt ,to_date('dept_dt','YYYYMMDD')
FROM dept_dt_t
where dept_dt is not null;
最佳答案
基于TO_DATE()
文档:
结束日期(字符串,格式)
要转换的字符串。
格式化字符串文字
根据日期定义要转换的字符串的格式
部分。有关有效格式的列表,请参见日期时间格式字符串。
需要string
列dept_dt stored
整数的位置。
先转换为字符串:
SELECT TOP 10 dept_dt ,TO_DATE(CAST(dept_dt AS CHAR(8)),'YYYYMMDD')
FROM dept_dt_t
WHERE dept_dt IS NOT NULL;