Oracle Sql - 将天数添加到timestamp类型的变量中

时间:2013-10-17 02:06:06

标签: oracle oracle11g oracle-sqldeveloper

我有一个类型为' 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)出现问题。请建议

2 个答案:

答案 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即可。 :)