mysql测试一个记录中的多个日期与一个具有特定日期的表

izkcnapc  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(298)

第一次提问,所以我会尽量保持重点。
我有一个记录员工出勤表的系统: tbl_Payperiod -(id、付款期、开始日期) tbl_Rota -(rotaid、payperodid、employeeid、mondate、monstarttime、monfinishtime、tuesdate、tuestarttime等)
上述工作,因为我想它太,我可以捕捉不同的工作日,如年假,疾病等变种。
使用php(phprunner)通过浏览器访问系统
问题是:我需要做的是检查日期是否是公共假日。我在以前的excel设置中做过这个(使用数组和查找),但是我不知道如何在mysql中测试它我可以创建一个表来保存假日日期并手动更新它。那么,我该如何检查并“标记”表格中的日期呢 tbl_rota.MonPH = True or false 一旦我可以“标记”日期,我就可以应用相应的工资率。。提前感谢您的帮助

zazmityj

zazmityj1#

左连接 tbl_Rota 与假日表7次,一周中的每一天一次。然后设置每个 dayPH 字段设置为true或false,具体取决于联接是否成功。

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,
    ...

有独立的列的 tbl_Rota 因为一周中的每一天都让事情变得复杂。如果每天都有单独的行,那么只需对holiday表执行一个左联接即可。

nuypyhwy

nuypyhwy2#

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

RotaID, 
PayperodID,
EmployeeID

RotaID
Start_dt
Finish_dt

相关问题