【发布时间】:2019-04-27 03:10:12
【问题描述】:
我需要在 AS400 中将整数转换为日期格式。
我有一个名为ivdat8 的字段,它是格式为YYYYMMDD 的整数。
我需要使用 WHERE 子句来选择两个日期之间的数据,即今天和 3 天前。
我正在使用以下行来执行此操作:
Where
ivdat8 Between (Select current date - 3 days from sysibm.sysdummy1) And (Select current date from sysibm.sysdummy1)
来自 sysibm 的当前日期是真正的日期格式,但 ivdat 是整数。
如何将 ivdat8 转换为可以在 WHERE 子句中使用的日期格式?
我已尝试以下方法将 int 转换为日期:
cast(cast(A.ivdat8 as varchar(50)) as date)
&
TIMESTAMP_FORMAT(ivdat8,'YYYYMMDD')
【问题讨论】:
-
可以
ivdat8 between cast(varchar_format(current date - 3 days, 'YYYYMMDD') as int) and cast(varchar_format(current date, 'YYYYMMDD') as int)吗? -
旁注:您通常应该使用包含下限 -
>=- 上限不包含 -<样式查询日期/时间/时间戳。一方面,考虑到今天永远不会结束(仅在昨天),我对包括“今天”在内的任何笼统的东西都有些怀疑。
标签: sql excel db2 ibm-midrange