日期:2014-05-17  浏览次数:20662 次

求一条时间范围内的语句
数据库A表中有一个代表年份的列 Year 和一个代表月份的字段 Month

假如从程序端传来一个日期 比如 2011/11/02

我想查询出所有小于 2011/11/02 的数据

------解决方案--------------------
逻辑上有问题吧!
为什么不用Date数据库类型存储年月呢,郁闷啊。
因为你数据库中只保存了年和月,但你传过来的数据,还有日,你如何判断你的你的数据是哪日的。

要只比较到月,可以这样做:
SQL code

SELECT TO_DATE(年的字段名 || 月的字段名, 'YYYY-Month'),其它字段
FROM 表名
WHERE TO_DATE(年的字段名 || 月的字段名, 'YYYY-Month') < TO_DATE('2011-11月', 'YYYY-Month');