我有一个显示广告系列中广告的应用.我将每个广告系列的广告集的显示限制为每个广告系列的特定日期范围.我的“广告系列”表如下所示:
campaigns
id : integer
start_date : date
end_date : date
现在,我需要能够选择每天将广告系列广告的显示限制为特定时间范围.所以现在我的桌子看起来像
campaigns
id : integer
start_date : date
end_date : date
start_time : time, default: null
end_time : time, default: null
因此,我的[MySQL]查询如下所示:
SELECT
ads.*
FROM
ads
INNER JOIN campaigns ON campaigns.id = ads.campaign_id
WHERE
campaigns.start_date <= "2014-08-05" AND
campaigns.end_date >= "2014-08-05" AND
campaigns.start_time <= "13:30"
campaigns.end_time >= "13:30";
(日期和时间实际上是使用当前日期/时间注入的.)
这很好.但是,因为我以UTC时间存储start_time和end_time,所以有时end_time早于start_time.例如,在数据库中:
start_time = 13:00 (08:00 CDT)
end_time = 01:00 (20:00 CDT)
如何调整查询(甚至使用代码)以解决此问题?