2012-05-07 48 views
0

我正在写一个db2过程。 我的选择查询结果有我需要比较的日期时间。在DB2的SQL过程 - 选择查询结果 - 如果条件 - 子串

日期格式20120507时间格式111111

我打算Concat的两个和比较为整数。那是正确的比较方式吗?

但是,如果它小于10的值将像71111 ..我打算在这些情况下在时间之前追加0,并且concat和compare。

我可以在单个语句中做到这一点。

select dbdate, if LENGTH(trim(dbtime))=7 then '0'||dbtime into newtime from tablename 
+1

不,不要将日期/时间比较为整数,将它们作为正确的数据类型进行比较(禁止在某些OLAP系统中专门使用日历表)。你的数据实际上是作为整数(或字符串)存储的,还是你查询的结果?你需要做什么样的比较? –

回答

0

尝试使用TIMESTAMP标量函数作为

select TIMESTAMP(dbdate, dbtime) 

这给你一个DB/2时间戳可以在比较操作中使用。在进行比较之前,根据需要,最好将所有日期/时间值转换为时间戳,然后truncateround