我有以下查询:
select *
from mytable
where to_char(mydate,'mm/dd/yyyy') between ('05/23/2013')
and ('06/22/2013')
我需要将其更改为动态生成,这样我就不会每个月都从 05/23/2013
到 06/23/2013
修改它,例如:
('05/23/' + (select to_char(sysdate, 'yyyy') from dual))
但是这是一个错误。有什么建议吗?
我需要做什么:每个月我都需要运行这个查询来获取本月 23rd 到 23rd 上个月。
最佳答案
Oracle 使用 ||
作为 concatenation operator :
('05/23/' || (select to_char(sysdate, 'yyyy') from dual))
顺便说一句,大卫是对的。如果您真的想比较日期的字符串表示形式(但为什么呢?),请使用与日期排序方式相同的日期格式:
to_char(mydate,'yyyy/mm/dd')
关于sql - Oracle 查询连接日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17878222/