请问
MySql
中如何判断时间段内是否有重复?
2010/05/23
10
数据库里有
“
开始时间
”a
和
“
结束时间
”b
,现再给一个
“
开始时
间
”a1
和
“
结束时间
”b1
现在要判断
a1
至
b1
时间段里是否
a
至
b
之间的日期
例:
a=2010-05-01
,
b=2010-06-30
a1=2010-06-01
,
b1=2010-07-31
现在的日期里可以看
出,从
2010-06-01
至
2010-06-30
这一期间里是重复的,我只需要判断出
a
到
b
这段
时间是有重复,而不需要判断具体的重复时间段。
可以查出有几条记录重复即可。
mysql
insertintot5values(1,’2010-05-01’,’2010-06-30’);
QueryOK,1rowaffected(0.00sec)
mysql
insertintot5values(2,’2010-06-05’,’2010-06-25’);
QueryOK,1rowaffected(0.00sec)
mysql
selectcount(*)fromt5where(a
‘2010-06-01’anda
‘2010-07-31’)or(b
‘2010-06-
01’andb
‘2010-07-31’);
+----------+
|count(*)|
+----------+
|2|
+----------+
1rowinset(0.03sec)
mysql
这个只是一种情况,如果提供的日期是
a2
和
b2
又怎么
办?还有其它的一些情况如
a3
,
b3
呢。
a=2010-05-01
,
b=2010-06-30
a1=2010-06-
01
,
b1=2010-07-31
a2=2010-04-01
,
b2=2010-07-31
a3=2010-05-10
,
b3=2010-08-31
(
不要高估你的汉语表达能力或者我的汉语理解能力
)
建议你列出你的表结构,并提
供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方
式
topic.csdn/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1.
你的
createtablexxx..
语句
2.
你的
insertintoxxx...
语句
3.
结果是什么样,
(并给以简单的算
法描述)
4.
你用的数据库名称和版本
(
经常有人在
MSSQLserver
版问
MySQL)
这
样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字
描述理解上的误差。
CREATETABLE`NewTable`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`startdate`dateNULLDEFAULTNULL,
`enddate`dateNULLDEFAULTNULL,
PRIMARYKEY(`id`)
)
insertintodatetest(startdate,enddate)values(‘2010-03-01’,’2010-05-31’)
insertintodatetest(startdate,enddate)values(‘2010-06-01’,’2010-07-31’)
insertintodatetest(startdate,enddate)values(‘2010-08-01’,’2010-08-31’)
现根据一组日期
进行判断,如:
2010-04-01--2010-06-20
这段时间内有没有和数据库中的时间段有重