我有一个表格,列中有一种奇怪的日期格式,如 varchar - 这是公司为我提供的格式 - 中间的 T 似乎把事情搞砸了。
EVENTID | EVENT_DATE | EVENT_DURATION
1 | 2012-10-14T06:00 | 15
2 | 2012-10-14T06:15 | 11
3 | 2012-10-14T06:26 | 14
4 | 2012-10-14T06:40 | 10
等等……等等
我有php代码以完全相同的格式返回当前时间(中间有奇怪的'T''
$thisin = DateTime::createFromFormat('Y-m-d\TH:i', date('Y-m-d\TH:i'));
$thisin->setTimeZone(new DateTimeZone('UTC'));
$thisout= $thisin->format('Y-m-d\TH:i');
假设今天是 14 号,当前时间是 06:21,我如何根据匹配“$thisout from php”的持续时间和接下来的五行(将来)查询当前行。
因为当前时间和日期从 php 返回为 "2012-10-14T06:21" 查询应该输出
2 | 2012-10-14T06:15 | 11 (Now SHowing)
3 | 2012-10-14T06:26 | 14
4 | 2012-10-14T06:40 | 10
等
我一直在摸不着头脑,DATE_FORMAT() 似乎不起作用,我认为它可能是中间的 T。我还必须弄清楚如何使用持续时间来确定当前时间是否适用于特定行。
这不起作用
SELECT DISTINCT EVENTID, EVENT DATE, EVENT_DURATION
FROM epg_event
WHERE DATE_FORMAT(EVENT_DATE, '%Y-%m-%dT%H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%dT%H:%i')
ORDER BY EVENT_DATE ASC LIMIT 5
有任何想法吗?