读书人

准时间段查询数据库获取不到数据是

发布时间: 2012-12-27 10:17:10 作者: rapoo

按时间段查询数据库,获取不到数据,是什么原因?


select t.id,
t.name,
a.companyname,
a.longitude,
a.latitude,
a.endtime,
a.userid
from user_base t, action_base a
where t.id = a.userid
and t.name = '李刚'
and a.endtime >= to_date('2012-11-24', 'yyyy-mm-dd')
and a.endtime <= to_date('2012-11-24', 'yyyy-mm-dd')
order by a.endtime

[最优解释]
and a.endtime >= to_date('2012-11-24', 'yyyy-mm-dd')
and a.endtime <= to_date('2012-11-24', 'yyyy-mm-dd')

这个条件貌似查询不出任何记录相当于查询在2012-11-24 00:00:00 到 2012-11-24 00:00:00 之间的数据,如果存入的日期字段不做其他处理的话都是带有时分秒的,查询24号的可以讲后面的改为 2012-11-25
[其他解释]
引用:
and a.endtime >= to_date('2012-11-24', 'yyyy-mm-dd')
and a.endtime <= to_date('2012-11-24', 'yyyy-mm-dd')

这个条件貌似查询不出任何记录相当于查询在2012-11-24 00:00:00 到 2012-11-24 00:00:00 之间的数据,如果存入的日……


正确,后面加1就可以了
[其他解释]
求指点
[其他解释]
看看2012-11-24这天有“李刚”的数据么,你这查的是这一天的数据吧。
[其他解释]
a.endtime 如果是日期类型用 a.endtime BETWEEN starttime AND endtime
[其他解释]
select t.id,
t.name,
a.companyname,
a.longitude,
a.latitude,
a.endtime,
a.userid
from user_base t left join action_base a on t.id = a.userid where
t.name = '李刚' and convert(varchar(10),cast(to_date as datetime),102) between convert(varchar(10),cast(第a.endtime as datetime),102)
and convert(varchar(10),cast(a.endtime as datetime),102) order by a.endtime

[其他解释]
1、
and a.endtime >= to_date('2012-11-24', 'yyyy-mm-dd')
and a.endtime <= to_date('2012-11-25', 'yyyy-mm-dd')

2、日期换成 '2012-11-24 00:00:00' '2012-11-24 23:59:59'
[其他解释]
引用:
1、
and a.endtime >= to_date('2012-11-24', 'yyyy-mm-dd')
and a.endtime <= to_date('2012-11-25', 'yyyy-mm-dd')

2、日期换成 '2012-11-24 00:00:00' '2012-11-24 23:59:59'



谢谢,解决
[其他解释]
引用:
a.endtime 如果是日期类型用 a.endtime BETWEEN starttime AND endtime




正解!并且你的日期格式精确到天的话是没法比较这一天之内的。你可以写: 2012-5-5 0:00:00 到 2012-5-5 23:59:59 这样也行
[其他解释]
日期类型还是要好好学习的
[其他解释]
null

读书人网 >asp.net

热点推荐