我在db2中使用yyyy/mm/dd
格式将日期保存为varchar我需要在查询中将其转换为日期datetype如何实现此目的?
我试过
从ASAODLIB.SSLR204中选择DATE(CRDTR2),其中CRDTR2 BETWEEN ' 2015/03/01 39#; AND' 2015/03/31';
查询并得到以下错误
日期时间值的字符串表示的语法是 不正确.. SQLCODE = -180,SQLSTATE = 22007,DRIVER = 3.68.61
有人可以帮助我。
答案 0 :(得分:3)
如果您的DB2版本足够新,请使用to_date:select DATE(TO_DATE(CRDTR2, 'YYYY/MM/DD')) from ...
答案 1 :(得分:1)
...因为它没有识别出那种格式。我首先通过REPLACE
将其转换为*ISO
:
SELECT DATE(REPLACE(CRDTR2, '/', '-'))
FROM ASAODLIB.SSLR204
WHERE CRDTR2 BETWEEN '2015/03/01' AND '2015/03/31'
顺便说一下,这里还有其他几件事。
BETWEEN
,优先于独占的上限(<
- 博客谈论SQL Server,但问题实际上是由于表示。那,大多数版本的DB2都允许你在时间戳中指定小数秒......)。