我有一个类型为' 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)出现问题。请建议
答案 0 :(得分:1)
使用以下查询可以解决上述问题
TO_CHAR(RECORD_DATE, ''DD-MON-YYYY'') = TO_CHAR(:MYDATE, ''DD-MON-YYYY'')
答案 1 :(得分:0)
你大多是正确的......上面的问题虽然看起来像是在问一个日期范围......因为有很多方法可以编写查询,所以你可以写一个a = b或者你可以写一个> b-1和a< B + 2。如果您只考虑a = b,则是,to_char = to_char将起作用,trunc(a)= trunc(b)也是如此。
但是,如果您需要查看某个日期是否大于另一个日期,您只需要进行一次小编辑,因为它目前首先会看到dd,然后是mm,而去年...这不会给您更正结果,因此您只需将日期顺序更改为yyyy-mm-dd即可。 :)