2014-02-24 53 views
0

我有如下表計算兩個日期之間的天不重複

id  date 
------- + ---------  
    1  10-01-2014 
    2  10-01-2014 
    3  15-01-2014 
    4  15-01-2014 
    5  20-01-2014 
    6  30-01-2014 
    7  03-02-2014 
    8  12-02-2014 
    9  12-02-2014 
    10  19-02-2014 
    11  19-02-2014 

我的表名是:出席會議。我想計算在01-01-2014 to 20-02-2014之間沒有重複的日期數。

以下是我對這個查詢:

SELECT distinct(todaydate) FROM attendance WHERE todaydate between '01-02-2014' and '24-02-2014' 

其工作,但答案是錯的。 任何解決方案。 在此先感謝。

+1

'SELECT DISTINCT(todaydate)FROM出席WHERE todaydate '24和-02-2014' 之間'01 -02-2014' 通過date' –

+0

您需要將字符串日期轉換組到MySQL,然後使用BETWEEN進行比較。 –

+0

什麼是您的表中的字段日期的數據類型,因爲提供的格式不是mysql日期格式..我認爲列名是日期不今天.. –

回答

0

試試這個

SELECT DISTINCT(`date`) AS date 
FROM attendance 
WHERE UNIX_TIMESTAMP(`date`)>UNIX_TIMESTAMP('01-01-2014') 
     AND 
     UNIX_TIMESTAMP(`date`)<UNIX_TIMESTAMP('24-02-2014') 

OR

SELECT date 
FROM attendance 
WHERE UNIX_TIMESTAMP(`date`)>UNIX_TIMESTAMP('01-01-2014') 
     AND 
     UNIX_TIMESTAMP(`date`)<UNIX_TIMESTAMP('24-02-2014') 
GROUP BY date 
+0

謝謝你:)其工作... – Renjitha

0

有問題想要計算在01-01-2014到20-02-2014之間的日期 但在查詢中您提到了一些其他日期。

所以實際的查詢將是:

SELECT distinct(todaydate) 
FROM attendance 
WHERE todaydate between '01-01-2014' and '24-02-2014' 
0

你的日期字符串你需要將它們轉換成使用STR_TO_DATE

MySQL的日期嘗試像

SELECT distinct 
    (STR_TO_DATE(todaydate, '%d-%m-%Y')) as todaydate 
FROM 
    attendance 
WHERE 
    todaydate between STR_TO_DATE('01-02-2014', '%d-%m-%Y') 
AND STR_TO_DATE('24-02-2014', '%d-%m-%Y'); 
相關問題