【发布时间】:2016-08-05 04:14:52
【问题描述】:
当我运行查询时
select * from TABLE9
where dateLastChanged < dateLastUploaded
在这张桌子上,我希望看到第 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)
缺少什么???
我第一次在项目上使用 DB2。越来越“爱”它。
注意:我知道我可以在 Java 端解决这个问题。
//----------------------------
编辑:
在 Q 中澄清我认为很清楚的内容:
怎么会
select * from TABLE9
where dateLastChanged < dateLastUploaded
正在返回 dateLastChanged < dateLastUploaded、dateLastChanged > dateLastUploaded 和 dateLastChanged = dateLastUploaded。
DB2 如何决定哪个时间戳更大、更小、相等、不相等。行tNumber=bbbbb 的时间戳是同时创建和写入的。
//--------------------
EDIT-2
在我原来的 Q 中,时间戳比较中的“大于/小于”令人困惑。这(后一个时间戳更大/不) 一旦我通过了我在 Q 中列出的 inconsistency 和在此之前的编辑,很容易弄清楚。
【问题讨论】:
-
请解释一下为什么您认为“17:24”比“17:14”少(即早)?
-
您查看过您的时间戳吗?只要看得够近,你就会找到所有答案。一切都按预期工作!
-
我也喜欢 DB2,因为它是正确的。
-
@MichaelTiefenbacher 希望不是“一切都像预期的那样工作!”。阅读编辑。
-
抱歉,您的编辑让我感到困惑。如果您参考第一个示例并且 tNumber=ccccc 2016-08-13 大于 2016-08-03 - 只需查看日期就足够了。