Oct 29 2016 sql datetime whether two date range overlap 碰到一个需求,一个时间段内只允许有一个计划,也就是说数据库中的时间区间不能有重复或交叉,记录下从复杂到简单的简化过程。1.刚开始想的时候感觉这个有很多种情况,然后把每一次情况都用sql标识出来,写的语句如下。12345678910111213141516#情况如下:# a: |------|# b: |------|# a.start_time >= start_at and a.start_time <= end_at# a: |------| # b: |------|# a.end_time >= start_at and a.end_time <= end_at# a: |------|# b: |----------|# a.start_time >= start_at and a.end_time <= end_at# a: |----------|# b: |------|# a.start_time <= start_at and a.end_time >= end_at#代码如下:plan = Plan.where('((start_time >= ? and start_time <= ?) or (end_time >= ? and end_time <= ?) or (start_time >= ? and end_time <= ?) or (start_time <= ? and end_time >= ?) )',start_at, end_at, start_at, end_at, start_at, end_at, start_at, end_at) betweendatetimesql more >>
Jul 10 2016 rails项目优化 sql优化 因为项目的表数据量比较大,系统经常因为内存满而卡死,所以对整个rails项目进行了一次简单的优化,其中涉及到了几个比较关键的点,记录下来。假设有个product表,数量在百万级别的。因为是rails项目所以里面会包含一些rails注意事项,还有一些简单的sql语句优化,水平有限,如果有什么不对的地方,还请邮件联系我。 railssql more >>