首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

!这个SQL为什么东东的!

2012-03-29 
紧急求助!!这个SQL为什么错误的!!select * from time whereto_date(tTime,yyyy-MM-dd HH24mi) 1031a

紧急求助!!这个SQL为什么错误的!!
select * from time where
to_date(tTime,'yyyy-MM-dd HH24mi') >='1031' and to_date(tTime,'yyyy-MM-dd HH24mi') <='1940'


时间列是20120223200404这样的

现在我需要根据客户输入的时间点 比如201203221022 到 201203221055 这段时间内的记录 为什么错了啊

[解决办法]
比较格式混乱掉了。用date型和字符型比较大小当然是不行的。
[解决办法]
你要实现什么功能?判断年份是否在1031和1940年之间??
看你的数据,时间列是char型的,那就不用to_date了:

SQL code
select * from time where substr(tTime,1,4) >='1031' and substr(tTime,1,4) <='1940';
[解决办法]
SQL code
首先你这SQL犯了两个错误1、to_date(tTime,'yyyy-MM-dd HH24mi') 错误正确应该是 to_date(tTime,'yyyy-mm-dd hh24:mi')2、to_date(tTime,'yyyy-MM-dd HH24mi') >='1031' 这个等式错误左边TO_DATE 出来的是日期格式  而右边是 字符串格式,肯定会报错正确写法:select * from time where to_date(tTime,'yyyy-mm-dd hh24:mi') >= to_date('201203221022','yyyy-mm-dd hh24:mi')and to_date(tTime,'yyyy-MM-dd HH24:mi') <= to_date('201203221055','yyyy-mm-dd hh24:mi')
[解决办法]
你这样的话是选取1031年到1940年的数据,楼主的意思应该是选取“小时”之间的数据吧
不管要选取那个时间段,最好能都包括进去 You may as well like this:
select * from time 
where substr(tTime,1,14)>='201203221022' and substr(tTime,1,14)<='201203221055' ;
探讨
你要实现什么功能?判断年份是否在1031和1940年之间??
看你的数据,时间列是char型的,那就不用to_date了:

SQL code
select * from time where substr(tTime,1,4) >='1031' and substr(tTime,1,4) <='1940';

[解决办法]
探讨
引用:

你要实现什么功能?判断年份是否在1031和1940年之间??
看你的数据,时间列是char型的,那就不用to_date了:
SQL code
select * from time where substr(tTime,1,4) >='1031' and substr(tTime,1,4) <='1940';


字符串可以比较大小?

热点排行