要用SQL语言查询一个时间段内的数据,连接串怎么写?

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:03:07
数据表VIBDATA里的记录,有一个时间字段TIME,形式是:年-月-日 时:分:秒,比如"2009-09-01 14:00:21",现在由用户提供起始时间和结束时间,怎么写连接串,能从数据库里查到所有的符合起止时间的数据?
select * form VIBDATA where ID like '1101' and TIME ……
后面怎么写?
"2009-09-01 14:00:21"里,日期和时间中间有一个空格
连接串前面确实应该是like '%1101%',高手果然很细
Oracle数据库,建库的人告诉我,TIME字段是这样建的:"TIME" DATE NOT NULL,应该是日期时间类型
jomissor,您提供的连接串
select * from table where time between to_Date(20091001,'yyyymmdd') and to_date(20091001235959,'yyyymmddhh24miss')
to_date()和里面的'yyyymmdd'是什么意思,以及后面的'yyyymmddhh24miss'怎么理解,能再详细地解释下吗?

具体看你是ORACLE还是SQL,写法不一样
ORACLE:select * from table where time between to_Date(20091001,'yyyymmdd') and to_date(20091001235959,'yyyymmddhh24miss')

SQL:select * from table where time between '2009-10-01' and '2009-10-02 23:59:59'
以上是TIME列是日期格式的时候用,如果是字符格式,就简单些了.
select * from table where time between '2009-10-01' and '2009-10-02 23:59:59'
这样就行.

呵呵,'yyyymmdd'和'yyyymmddhh24miss'是指日期的格式.
yyyy对应年(YEAR),MM对应月(MONTH),DD对应日(DAY),HH对应小时(HOUR),24代表24小时制,MI代表分钟(minute),SS代表秒(SECOND).前面的日期多长,后面的格式就要对应多长.比如20091001对'yyyymmdd',20091001235959对'yyyymmddhh24miss'

select * from vibdata where id like '%1101%' and time > to_date('2009-09-01','yyyy-mm-dd') and time <= to_date('2009-09-01','yyyy-mm-dd')
形式就是这样

select * from vibdata where id like '1101%' and time between to_date(起始时间,'hh24:mi:ss') an