我正在尝试过滤和计算员工出勤率。
我有一张这样的表:
attedance table:
+-----+-----------------------+----------+-----------+
| id | time | status | emp_id |
+-----+-----------------------+----------+-----------+
| 1 | 2018-04-17 7:03:40 | 1 | 1 |
| 2 | 2018-04-18 7:10:50 | 1 | 1 |
| 3 | 2018-04-19 5:05:32 | 1 | 1 |
| 4 | 2018-04-20 7:07:44 | 1 | 1 |
| 5 | 2018-04-18 7:10:50 | 1 | 2 |
+-----+-----------------------+----------+-----------+
我的目标是过滤所有出勤数据。
获得解决方案
models.model.objects.filter(emp_id=1).count()
在我的情况下返回4
。
还要过滤time(hour)
必须> 6
尝试将datetime.datetime(time).time() > 6
添加到过滤器,但不起作用。
任何可以帮助或建议我如何实现它?...
或者有其他最佳方案,例如使用forloop,
或者它不可能?...
答案 0 :(得分:1)
您可以使用__hour
按小时过滤:
$facilities->each->setAppends([
'your_attribute_here'
]);
答案 1 :(得分:0)
你可以像这样过滤
model.objects.filter(time__hour__gte = 6).filter(EMP_ID = 1).Count之间()