我有一张表有个字段名称是starttime 类型是DATE ,其中有一行的值是"11:00:00",我想把这一列选出来,语句如下:
select * from routebanci where starttime='11:00:00' and routename='***',可是总是说:ORA-01843: not a valid month,网上看了也改动了一下参数 NLS_DATE_LANGUAGE=AMERICAN 和 NLS_DATE_FORMAT=YYYY-MM-DD,可是还是不行
请教一下什么原因,我这里没有年月日的,只要一个时间就可以了,表原来是SQL建立的,是导过来的,不知道有什么好的解决办法
select * from routebanci where starttime='11:00:00' and routename='***',可是总是说:ORA-01843: not a valid month,网上看了也改动了一下参数 NLS_DATE_LANGUAGE=AMERICAN 和 NLS_DATE_FORMAT=YYYY-MM-DD,可是还是不行
请教一下什么原因,我这里没有年月日的,只要一个时间就可以了,表原来是SQL建立的,是导过来的,不知道有什么好的解决办法
'11:00:00'是字符串,当然不匹配了
select * from routebanci where to_char(starttime,'hh24:mi:ss')='11:00:00' and routename='***'
试试
select to_char(sysdate,'hh24:mi:ss') from dual;
能不能转化后面的,前面试了TO_DATE()好像不行,不知道应该怎么写,这样查询范围的话方便一点,这里应该可以使用between语句的吧,没有用过QRACLE 呵呵
当没对年月日赋值时,年月日会被默认为当年本月的第一天
所以只将时间转换为日期格式,恐怕很难查到你想要的数据
看看select to_date('110000','hh24miss') from dual
select * from routebanci where to_char(starttime,'hh24:mi:ss')='11:00:00' and routename='***'oracle时间是比较严格的,to_char可以转换成字符串,to_date是可将字串转换成时间
33:28
如果只有时间部分有用,查询的时候进行下例如to_char处理,像1楼写的那样