我明白了:您想要某种重新排列数字的位数以使其成为日期的方式。看起来像是编码[m]mddyyyy
。(为什么date
数据库中没有该数据类型?)
该数字需要转换为字符串,然后将子字符串排列并转换为日期。考虑到这里的复杂性,应该编写转换函数来代替将字段更改为适当的数据类型。应该执行以下操作(未测试,无法访问db2):
create function decimaldate(decdate DECIMAL)
returns DATE
return
with tmp (dstr) as
(
select substr(digits (decdate),8)
from sysibm.sysdummy1
)
select
date (substr(dstr,4,4) || '-' ||
substr(dstr,1,2) || '-' ||
substr(dstr,3,2)
)
from tmp
这会将数字转换为字符串,将字符串重新格式化为yyyy-mm- dd
并转换为日期。(我以此为基础。)
SELECT *
FROM table1
WHERE decimaldate(DECIMALCOLUMN) = @date