我有下表
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'
它的工作,但答案是错误的。 任何解决方案 提前谢谢。
答案 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