当我运行查询时
select * from TABLE9
where dateLastChanged < dateLastUploaded
在这张桌子上,我希望看到第1行和第1行。 4,但我得到这个:
当我跑步时
select * from TABLE9
where dateLastChanged > dateLastUploaded
我明白了
,以及
select * from TABLE9
where dateLastChanged <> dateLastUploaded
我得到了所有4个。 ... where dateLastChanged = dateLastUploaded
没有。
我尝试投射到时间戳 - 得到了相同的结果:
select * from TABLE9
where timestamp(dateLastChanged) < timestamp(dateLastUploaded)
什么不见了???
我第一次在prj上使用DB2。越来越多的爱#34;它。
注意:我知道我可以在Java端解决这个问题。
// --------------------------
编辑:
澄清我在Q中明确的想法:
怎么来
select * from TABLE9
where dateLastChanged < dateLastUploaded
正在返回dateLastChanged < dateLastUploaded
,dateLastChanged > dateLastUploaded
和dateLastChanged = dateLastUploaded
。
DB2如何确定哪个时间戳更大,更小,相等,彼此不相等。行tNumber=bbbbb
的时间戳是在同一时间创建和写入的。
// --------------------
修改-2
在我原来的Q - &#34;大于/小于&#34;在时间戳的比较中很困惑。这个(后一个时间戳更大/没有) 很容易想象一旦我通过我在Q和前面的编辑中列出的不一致。
答案 0 :(得分:1)
DB2使用ISO定义的逻辑来比较时间戳。这意味着对于“较低”,较早的日期/时间被采用,对于“较大”的较晚的日期/时间。对于您的示例,DB2已正确评估所有内容。要获得不同的结果,您需要更改值...:)