时间比较问题

fashchina 2007-09-27 08:26:21
数据库设计

id 开始时间 结束时间 证件号码




要求,同一个证件号码,在开始时间和结束时间中,有叠加的不超过3次

如:
1 2007-02-10 2007-07-10
2 2007-04-10 2007-08-10
3 2007-06-10 2007-12-10

这三个时间段中,
1 / 2 /3
6/7月份是3个都有的,那么,这就是非法的
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sammam 2008-06-20
  • 打赏
  • 举报
回复
有差不多问题。望解答
fashchina 2007-10-08
  • 打赏
  • 举报
回复
帮顶
qybao 2007-09-27
  • 打赏
  • 举报
回复
补充:我的表是日期类型的,LZ的如果是文字类型可以通过to_date转换一下,但如果文字长度一样,文字类型也是可以直接比较的
qybao 2007-09-27
  • 打赏
  • 举报
回复
前不久刚写过一个类似的
select * from your_table
where crd_no in (
select crd_no from (
SELECT aa.crd_no as crd_no, count(aa.crd_no) as dup_count
FROM your_table aa, your_table bb
WHERE aa.crd_no = bb.crd_no
AND aa.id <> bb.id
AND ( (aa.start_date between bb.start_date and bb.end_date)
OR (bb.start_date between aa.start_date and aa.end_date)
)
group by aa.crd_no having count(aa.crd_no) < 3
)
)
大文字的是我写的用来check重复纪录的,小文字是根据LZ要求加的,没测试过,LZ自己测一下吧
wshsm 2007-09-27
  • 打赏
  • 举报
回复
比较困难,试试把时间全部取出来,然后转换成Date类型,再用getTime()取到long类型进行比较

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧