在 db2 中将字符串日期(yyyy/mm/dd)转换为日期格式

Posted

技术标签:

【中文标题】在 db2 中将字符串日期(yyyy/mm/dd)转换为日期格式【英文标题】:convert string date(yyyy/mm/dd) to date format in db2 【发布时间】:2015-03-27 09:10:03 【问题描述】:

我在 db2 中以 yyyy/mm/dd 格式将日期保存为 varchar,我需要在查询中将其转换为日期日期类型,如何实现?

我试过了

从 ASAODLIB.SSLR204 中选择 DATE(CRDTR2),其中 CRDTR2 BETWEEN '2015/03/01' 和 '2015/03/31';

查询并得到以下错误

日期时间值的字符串表示形式的语法是 不正确.. SQLCODE=-180, SQLSTATE=22007, DRIVER=3.68.61

谁能帮帮我。

【问题讨论】:

DB2 的平台和版本是什么? 【参考方案1】:

如果您的 DB2 版本足够新,请使用 to_date:select DATE(TO_DATE(CRDTR2, 'YYYY/MM/DD')) from ...

【讨论】:

谢谢你。这对我有用。它也可以在 db2 v8.1 中使用吗?目前正在使用 10.1【参考方案2】:

...因为它无法识别该格式。我先把它变成*ISO,通过REPLACE

SELECT DATE(REPLACE(CRDTR2, '/', '-'))
FROM ASAODLIB.SSLR204 
WHERE CRDTR2 BETWEEN '2015/03/01' AND '2015/03/31'

顺便说一下,这里还有一些其他的东西。

    您应该将日期存储为实际的日期类型,这样就不会出现问题。 You shouldn't use BETWEEN,优先于独占上限(< - 博客讨论 SQL Server,但问题实际上是由于表示。那,大多数版本的 DB2 允许您在时间戳中指定小数秒。 .).

【讨论】:

以上是关于在 db2 中将字符串日期(yyyy/mm/dd)转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer中将yyyy:MM:dd HH:mm:ss.sss转为yyyyMMddHHmmss

SQLServer中将yyyy:MM:dd HH:mm:ss.sss转为yyyyMMddHHmmss

正则表达式 MM DD YYYY 到 YYYY MM DD

将日期 javascript 从 yyyy/mm/dd 反转为 dd/mm/yyyy

dd/mm/yyyy 是啥日期格式?

NSJSONSerialization 将日期分隔符从 yyyy/MM/dd 更改为 yyyy\/MM\/dd [重复]