【发布时间】:2015-11-19 00:28:50
【问题描述】:
我有一个表 tbldeptdivision 如下:
ID DEPTID DIVISIONID FROMDATE TODATE REMARKS
--- ------- ----------- ----------- ----------- --------
21 21 5 31-AUG-99 01-JAN-80 NULL
我有问题
select *
from tbldeptdivision
where deptid = 21
and trunc(sysdate) between to_date(fromdate,'dd-Mon-yyyy')
and to_date(todate,'dd-mon-yyyy');
它没有返回任何价值。谁能说出为什么? '31-AUG-99' 实际上是 '31-AUG-1999' 而'01-JAN-80' 实际上是 '01-JAN-2080'。确切的查询是什么?
【问题讨论】:
-
标记您正在使用的技术
-
FROMDATE and TODATE的数据类型是什么。Date or varchar??? -
我正在使用 oracle。数据类型是日期
-
它不返回任何内容,因为它在两列中都假设 20 世纪? 1999 年到 1980 年之间什么都没有。
-
您确定将 80 年的日期视为 2080 而不是 1980?我有疑问。没有人从千年虫“危机”中吸取教训吗?使用两位数表示年份是愚蠢的!
标签: sql oracle date between date-range