1

我有一个类型为“ timestamp ”的变量“ mydate ” ,我想将它与“record_date”(这是一个数据库列)进行比较

我的查询是获取 mydate=record_date 的记录,但我的查询 (record_date=:mydate) 只给出 record_date 类似于'06/10/13 12:00:00.000000000 AM' 的结果。如果 record_date 有一些不同的 hh:mm:ss 值,例如'06/10/13 02:23:32.000000000 AM',则相等运算符不会给出任何输出。

record_date>=:mydate有效,但它也为大于 6 的日期提供输出,即 7 等等。

如何写这样的比较 record_date>=:mydate 和 record_date<=:mydate+1 (mydate+1) 有问题。请建议

4

2 回答 2

1

使用以下查询可以解决上述问题

TO_CHAR(RECORD_DATE, ''DD-MON-YYYY'') = TO_CHAR(:MYDATE, ''DD-MON-YYYY'')
于 2013-10-17T06:09:46.653 回答
0

你大多是正确的......虽然上面的问题,看起来你在问一个日期范围......因为写查询的方法不止一种,所以你可以写 where a = b 或者你可以写其中 a > b-1 和 a < b+2。如果您只考虑 a = b,那么是的,to_char = to_char 会起作用,trunc(a) = trunc(b) 也会起作用。

但是,如果您需要查看一个日期是否大于另一个日期,您只需要进行一个小编辑,因为目前它会先查看 dd,然后是 mm,然后是去年......这不会给你正确的结果,因此您只需将日期顺序更改为 yyyy-mm-dd。:)

于 2014-01-22T19:27:55.257 回答