2015-09-28 153 views
0

我有幾個數據和mysql date datetime值。我需要返回總計數從給定dateperiod和給定時間段獲取日期時間字段內給定的兩個mysql時隙之間的幾個時段的計數

Ex。

time    
2012-02-01 10:00 
2012-02-01 12:00 
2012-02-01 14:00 
2012-02-02 09:00  

2012-02-02 10:00  
2012-02-03 11:00  

如何在時間和日期槽形時間字段得到的數據基礎上爲這個問題,我只想從09:00擺脫日期2012-02-01數據2012-02-02和時間12:00所以這不應該提供2012-02-01 14:00希望你有這個數據現在

+2

你嘗試過什麼到目前爲止什麼?告訴我們你的代碼。 「寫我的代碼給我」類型的問題在這裏就不合時宜了。 – ciruvan

+0

我只是在日期查詢之間嘗試過,但沒有完成時隙條件 –

+0

您使用了哪些代碼來嘗試?張貼在這裏。 – M1ke

回答

0

試試這個 -

SELECT count(*) as c FROM users WHERE created_at 
BETWEEN '2012-02-01 09:00' AND '2012-02-02 02:00' AND 
Time(c) BETWEEN '09:00' AND '02:00' 
+0

我不想只從兩個日期獲取數據,但是這應該滿足時間條件也請仔細閱讀問題 –

+0

如何獲取數據基礎在這個問題上,我只想從日期2012-02-01到2012-02-02的時間和從09:00到12:00的時間,因此這不應該提供2012年的數據-02-01 14:00希望你現在得到這個 –

+0

檢查更新.. –

0

您的查詢一個錯字。截止時間爲14:00,而不是12:00:

SELECT COUNT(*) 
FROM users 
WHERE created_at BETWEEN '2012-02-01 09:00' AND '2012-02-02 14:00' ; 

編輯:

如果你想單獨限制時間和日期,然後使用兩個條件:

SELECT COUNT(*) 
FROM users 
WHERE created_at >= '2012-02-01' AND created_at < '2012-02-03' AND 
     time(created_at) BETWEEN '09:00:00' AND '14:00:00' ; 
+0

如何獲取數據的基礎上的時間和日期插槽形式的日期時間字段在這個問題,我只想從日期2012-02-01到2012-02-02和時間從09:00至12:00獲取數據,因此,這應該不提供2012-02-01 14:00的數據希望你現在得到這個 –

0

您只需在您的聲明中添加計數(*)。

SELECT count(*) FROM users WHERE created_at BETWEEN '2012-02-01 09:00' AND '2012-02-02 12:00' 
+0

如何獲取數據基礎的時間和日期插槽形式的日期時間字段在這個問題,我只想從日期2012-02-01 2012-02-02和時間從09:00到12:00,因此這不應該提供2012-02-01 14:00的數據希望你現在得到這個 –

+0

如何獲取數據基礎上的時間和日期槽格式日期時間字段在這個問題中,我只想從2012年2月1日到2012年2月2日的時間以及從09:00到12:00的時間獲取數據,因此這不應該提供2012年2月1日至2月4日的數據。你現在得到了這個 –

0

2012-02-01 14:00被理所當然地包含在您的查詢的結果,你想實現可以做到這樣

SELECT * FROM users WHERE 
(DATE(created_at) BETWEEN '2012-02-01' AND '2012-02-02') 
AND 
(TIME(created_at) BETWEEN '09:00' AND '12:00') 
+0

我已經找到了這個由我自己查詢是作爲SELECT *從預訂where(date(created_at)BETWEEN'2012-02-01'和'2012-02-02') AND (時間(created_at)'09:00:00'和'12:00:00'之間)感謝您的所有答案 –

相關問題