-1

我正在运行一个 SQL 语句来创建一个字段,我得到了想要的结果:

TO_CHAR(TRUNC(CURRENT_DATE - 8/24,'hh24'), 'DD-Mon-yyyy hh24:mi') AS "DATEVAR"

当我将它添加到 SQL 中的 where 语句时,我得到了正确时间段的结果,但不在 MMDDYY 范围内。是什么赋予了?

WHERE
TO_CHAR(MOPACTIVITY.MOPEND, 'dd-mon-yyyy hh24:mi:') < TO_CHAR(TRUNC(CURRENT_DATE - 8/24,'hh24'), 'DD-Mon-yyyy hh24:mi')

非常感谢你的天才。

尊敬,

乔纳森晨星

4

2 回答 2

3

您正在dd-mon-yyyy使用“<”进行比较。当然范围是关闭的。如果要将这些作为字符串进行比较,请使用yyyy-mm-dd

WHERE TO_CHAR(MOPACTIVITY.MOPEND, 'yyyy-mm-dd hh24:mi:') < TO_CHAR(TRUNC(CURRENT_DATE - 8/24,'hh24'), 'yyyy-mm-dd hh24:mi')

将这些作为日期进行比较不是更容易吗?

where MOPACTIVITY < TRUNC(CURRENT_DATE - 8/24)
于 2013-06-06T18:56:37.237 回答
2

to_char 返回字符串,因此您是在比较字符串,而不是日期。因此它们按字母顺序进行比较。

于 2013-06-06T18:55:35.840 回答