如何选择与当月有关的记录

时间:2016-08-23 09:57:10

标签: php mysql

我有一张桌子(出勤),用于存储员工的出勤数据。每天,管理员登录到他的系统,选择日期(在该日期),并将该员工标记为该日期的在场或缺席。这些记录存储在考勤表中。

我想检索当前月份EmpId的特定present / absent的所有记录,其中出勤率标记为1.EmpId - numeric 2.date:date type 3.status(either present/absent)-varchar

考勤表的列名是:

EmpId
  • 我想编写一个查询,以检索status="present"
  • 当前月份的特定EmpId(例如1)的所有记录
  • 我想编写另一个查询来检索status="absent"
  • 当前月份的特定__attribute__((section(".eeprom")))(例如1)的所有记录

任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:1)

您可以使用year() and month()函数获取当月的记录:

select * from attendance
where empid=... and year(date)=year(curdate()) and month(date)=month(curdate()) and status=...

您需要提供应用程序中的员工ID和状态。

答案 1 :(得分:1)

试试这个:

Select * from attendance
where date >= 'YOUR DATE' AND date <= 'YOUR DATE' AND status='Present OR Absent(Any)'

或者您可以使用:

SELECT * FROM attendance
WHERE Status='Present OR Absent(Any)' AND date BETWEEN value1 AND value2

答案 2 :(得分:0)

  

您必须从表中提取当前月份和日期并获得结果。

使用此查询检索输出。

  

单独取得现在的学生

$query_one = "SELECT EmpId  FROM `attendance` WHERE EXTRACT(YEAR FROM date)='".date('Y')."' AND EXTRACT(MONTH FROM date)='".date('m')."' AND `status`='present'"; 
  

单独取消缺席学生

$query_two = "SELECT EmpId  FROM `attendance` WHERE EXTRACT(YEAR FROM date)='".date('Y')."' AND EXTRACT(MONTH FROM date)='".date('m')."' AND `status`='absent'";    

上述代码将检索与当前月份和年份相对应的所有记录。

答案 3 :(得分:0)

使用可以简单地使用它来实现所需的输出。

MONTH(DateColumn) = MONTH(GETDATE())
YEAR(DateColumn)= YEAR(GETDATE())

答案 4 :(得分:0)

我已经尝试过这个查询,它完美无缺:

select * from attendance
where emp_id=1 and year(date)=year(curdate()) and month(date)=month(curdate()) and status='present';