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

sql语句书写,根据查询条件和数据内的字段查询交集记录解决思路

2012-04-09 
sql语句书写,根据查询条件和数据内的字段查询交集记录例如,我现在有一个旅游线路的出发日期,是这样的:2011

sql语句书写,根据查询条件和数据内的字段查询交集记录
例如,我现在有一个旅游线路的出发日期,是这样的:2011-2-1,2011-2-3,2011-3-2
现在查询条件是这样的,2011-1-1~2011-3-1,现在要查询他们的交集,应该怎么写查询语句。
注,日期查询条件可能大于一个月,最大有三个月。
我本来想这样写的,
select * from line where startDate like '%2011-1-1%' or
startDate like '%2011-1-2%' ........ startDate like '%2011-3-1%' 
不过我感觉这样写不妥,想找更好的方法。请求赐教,不能解决问题者不要乱回复。

[解决办法]
2011-2-1,2011-2-3,2011-3-2
指的什么意思?
是三个时间点?
还是2011-2-1到2011-2-3再到2011-3-2?
[解决办法]

SQL code
WHERE startDate  BETWEEN '2011-1-1' AND '2011-3-1'
[解决办法]
OR

SQL code
WHERE startDate  >= '2011-1-1' AND startDate < '2011-3-2'
[解决办法]
startDate用DATETIME类型,不要用字符型
[解决办法]
探讨
例如,我现在有一个旅游线路的出发日期,是这样的:2011-2-1,2011-2-3,2011-3-2
现在查询条件是这样的,2011-1-1~2011-3-1,现在要查询他们的交集,应该怎么写查询语句。
注,日期查询条件可能大于一个月,最大有三个月。
我本来想这样写的,
select * from line where startDate like '%2011-1-1%' or
sta……

[解决办法]
时间的话最好是用 datetime 格式
[解决办法]
select * from line where (select startDate from line where startDate between '2011-1-1' and '2011-3-1') in('2011-2-1','2011-2-3','2011-3-2')

热点排行