Sql 在Oracle 11g中使用日期数据类型进行查询
我试图在Oracle11g中使用DateWhere子句进行简单的选择和更新,但我无法产生预期的结果 日期字段为Sql 在Oracle 11g中使用日期数据类型进行查询,sql,oracle,date,Sql,Oracle,Date,我试图在Oracle11g中使用DateWhere子句进行简单的选择和更新,但我无法产生预期的结果 日期字段为datemodified,当前的值为2014年7月12日,数据类型为date 我正在做以下工作,但没有得到结果: select * from table where datemodified = to_date(datemodified, '12-JUL-14') 我尝试了以下方法,但仍然没有结果: select * from table where to_date
datemodified
,当前的值为2014年7月12日,数据类型为date
我正在做以下工作,但没有得到结果:
select *
from table
where datemodified = to_date(datemodified, '12-JUL-14')
我尝试了以下方法,但仍然没有结果:
select * from table
where to_date(datemodified, 'DD-MON-YY') = to_date('12-JUL-15',
'DD-MON-YY')
或
我做错了什么?您可以尝试此查询
select * from table
where to_char(datemodified, 'dd-MON-yy') = '12-JUL-15'
Oracle日期字段包括一天中的时间。此外,对函数结果进行过滤(如to_char())会降低生产速度。此方法适用于:
where dateModified >= the date you want
and dateModified < the day after the date you want.
或
但不是场本身你储存的日期是在哪个世纪?如果首先设置该值的内容不正确,例如使用YYYY掩码通过2位数年份,则可能会出现问题。(看到2位数的年份通常是某个地方出现问题的迹象)。或者更可能的是,它们是否包含非午夜的时间?用
检查您真正拥有的内容,从您的\u表中选择\u char(datemodified,'YYYY-MM-DD HH24:MI:SS'),并向问题添加一些示例。您的第二个和第三个查询也使用了“15”而不是“14”,这可能没有帮助。。。但是第一个会抛出ORA-01821,这些可能不是你实际使用的。
where dateModified >= the date you want
and dateModified < the day after the date you want.
where dateModified >= trunc(sysdate)
where dateModified >= to_date('12-JUL-15','DD-MON-YY')