我有一個表中有一種奇怪的日期格式的列作爲varchar - 這是公司提供給我的格式 - 中間的T似乎弄亂了事情。PHP MYSQL - 不可能的查詢? - 查找「當前顯示」
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
等... ECT
我有PHP代碼中完全一樣的格式在中間」
$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');
假設返回當前時間(與怪異的 'T'今天是第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
ECT ECT
我一直在抓我的頭幾個小時,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
什麼想法?
只是一個注:「奇怪的日期格式」是國際標準ISO 8601(http://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) –
它是絕對正常的日期時間格式。如果您與NOW()比較它會工作,這是MYSQL查詢只..沒有PHP需要:) – Svetoslav
杜先生,查詢現在工作很好,但它拉大於或等於,因爲它幾乎永遠不會超過,如何還可以在查詢之前拉一行?否則它只顯示接下來的內容。 –