计算两个日期之间的日期而不重复

时间:2014-02-24 06:37:29

标签: php mysql phpmyadmin

我有下表

  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'

它的工作,但答案是错误的。 任何解决方案 提前谢谢。

3 个答案:

答案 0 :(得分:0)

有问题,您想要计算2014年1月1日至2014年2月20日期间的日期 但在查询中你提到了其他一些日期。

所以实际查询将是:

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

答案 1 :(得分: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');

答案 2 :(得分: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