sql中如何判断时间大小呢? 急!

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:45:25
现在我的数据库中有EditionDate这项
举个例子,我想搜索从2001-1-1到2008-12-31之内出版的书
我用如下语句
select * From Book where EditionDate>(2001-1-1) and EditionDate<(2008-12-31),搜索无结果
但是如果只用一个边界条件,如2001-1-1
select * From Book where EditionDate>(2001-1-1),是可以搜出结果的

急救!

时间要有单引号的,不然实际执行的是算术运算
select * From Book where EditionDate>(2001-1-1) 等同于
select * From Book where EditionDate>1999
1999可以隐式转换为日期,所以有结果。
正确写法是
select * From Book where EditionDate>'2001-1-1' and EditionDate<'2008-12-31'

可以先转换成时间类型再比较撒
EditionDate>to_date('2001-1-1','yyyy-MM-dd') and EditionDate<to_date('2008-12-31','yyyy-MM-dd')

AND EditionDate > timestamp '2001-1-1'
AND EditionDate < = timestamp '2008-12-31'

select * From Book where EditionDate>'2001-1-1' and EditionDate<'2008-12-31'

select * From Book where EditionDate>(2001-1-1) or EditionDate<(2008-12-31)