sql - Oracle 查询连接日期

标签 sql oracle

我有以下查询:

select * 
  from mytable 
 where to_char(mydate,'mm/dd/yyyy') between ('05/23/2013') 
                                        and ('06/22/2013')

我需要将其更改为动态生成,这样我就不会每个月都从 05/23/201306/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/

相关文章:

mysql - 根据多个标准(最接近的值)选择数据

sql - Oracle:即使没有约束或索引,重命名列也会出现 "ORA-00903: invalid table name"错误

甲骨文 : Case : I/Elsef Query

sql - Oracle 根据 order by 更新前 20 条记录

oracle - "For Loop"Oracle PL/SQL 中的迭代计数

java - 使用MyBatis调用oracle函数(基于注解)

mysql - FROM 子句中的 SQL 子查询

sql - 数据库部署: script or backup

mysql - 了解 MySQL 中 EXPLAIN 的结果

.net - 翻译数据库字符串