MYSQL针对具有特定日期的表在一条记录中测试多个日期

时间:2018-08-20 19:42:11

标签: mysql date

第一次提问,所以我会尽量保持重点。

我有一个记录员工出勤情况的系统- 表格:

  • <?php $interval = "2 hours" echo strtotime("+" . $interval)-time(); ?> -(ID,Payperiod,StartDate)
  • tbl_Payperiod-(RotaID,PayperodID,EmployeeID,MonDate,Monstarttime,Monfinishtime,TuesDate,Tuesstarttime等。)

上面的代码也可以按我的意愿工作,因此我可以捕获工作日的不同版本,例如年假,疾病等。

使用PHP(PHPRUNNER)通过浏览器访问系统

问题:我需要做的是检查日期是否为公众假期。 我在excel的先前设置中做到了这一点(使用数组和查找),但是我不知道如何在MYSQL中对其进行测试 我可以创建一个表来保存假期日期,并手动对其进行更新。 那么我该如何在tbl_Rota

中检查并“标记”日期

一旦我可以“标记”日期,然后就可以应用相应的工资率。 预先感谢您的协助

2 个答案:

答案 0 :(得分:1)

dayPH与假期表左联接7次,一周中的每一天一次。然后根据连接是否成功将每个UPDATE tbl_Rota AS r JOIN tbl_Holidays AS hMon ON r.MonDate = hMon.date JOIN tbl_Holidays AS hTue ON r.TueDate = hTue.date ... SET r.MonPH = hMon.date IS NOT NULL, r.TuePH = hTue.date IS NOT NULL, ... 字段设置为true或false。

tbl_Rota

$(document).ready(function () { $('.hasStartDate').datepicker({ dateFormat: "yy/mm/dd", autoClose: true, changeMonth: true, changeYear: true, minDate: '-1m', maxDate: '+3m', beforeShowDay: $.datepicker.noWeekends, onSelect:function(date){ var d = date.split("/"); d = d.map(function(item){return parseInt(item)}); var mindate = new Date(d[0], d[1]-1, d[2]+1); var maxdate = new Date(d[0], d[1]-1, d[2]+365); $('.hasEndDate').datepicker('option','minDate',mindate); $('.hasEndDate').datepicker('option','maxDate', maxdate); } }); $('.hasEndDate').datepicker({ dateFormat: "yy/mm/dd", autoClose: true, changeMonth: true, changeYear: true, beforeShowDay: $.datepicker.noWeekends }); });中一周的每一天都有单独的列,这确实使这变得复杂。如果每天都有单独的行,则可以对假期表进行单个左联接。

答案 1 :(得分:0)

标准化方法可能看起来像这样:

if any(k in theQuestion for k in (x-1, x/2))