我正在尝试为学校出勤率创建高图表时间表线图,但结果中出现的记录略有不同。
存储出勤率的表是:
+++++++++++++++++++++++++++++++++
Id | Date | AttendTime(varchar)
--------------------------------
1 | 20160815 | 7:51
2 | 20160815 | 7:53
3 | 20160815 | 8:01
-------------------------------
我正在使用以下sql来获取数据
SELECT
COUNT(Id) as Total
FROM Attendance
WHERE Date = '20160815' AND
HOUR(STR_TO_DATE(AttendTime, '%H:%i')) <= HOUR(STR_TO_DATE('7:30', '%H:%i'))
我应该得到0,因为没有,但是我得到3条记录。我究竟做错了什么?
谢谢。
最佳答案
如果您只是想查看7:30之前的出勤人数,则不需要HOUR
函数:
SELECT
COUNT(Id) as Total
FROM Attendance
WHERE Date = '20160815'
AND STR_TO_DATE(AttendTime, '%H:%i') <= STR_TO_DATE('7:30', '%H:%i')