MySQL链接员工工作时间每天与日期相关

时间:2015-09-29 20:13:40

标签: php mysql date

我有一张包含员工详细信息的表格,包括他们每天工作的小时数(轮班工作)

  empid   name  mon  tue  wed  thu  fri  sat sun
    1     Joe   8    10   6    10   6    0   0
    2     tim   10   8    6     6   0    10  0
    3     sam   0    8    8     8   0    8   8

并且在第二个表格中我想使用从员工表链接到日期的小时来填充它。如何将表1中的小时数与插入语句的日期链接到表2中。

  empId       Date                                            hours
    1     2015/10/11 (this date is mon so hours would be)       8
    1     2015/10/12 (this date is tue so hours would be)      10
    2     2015/10/13 (this date is wed so hours would be)       6  

不知道怎么回事。这可以通过MySQL或使用PHP来完成。

更新我使用的插入声明

    $startTime = strtotime($from);
$endTime = strtotime($to);
$values = array();
for($time = $startTime; $time <= $endTime; $time = strtotime('+1 day', $time))
{
   $thisDate = date('Y-m-d', $time);
   $values[] = "($user_id, '$thisDate')";

}
    $sql = sprintf(
   "INSERT INTO workhours (enpid, date) VALUES\n%s",
   implode(",\n", $values)
);

更新表格结构 员工表:

empid     name   lastname
 1         Joe    Jones
 2         tim    good

员工时间:

id    empid  mon   tue   wed   thu   fri  sat   sun
1       1     8    10     6    10     6    0      0
2       2     10    8     6     6     0    10     0

我需要做的是从表1中获取每天的小时数,并将该值与empId和Date一起插入到表2中 感谢

2 个答案:

答案 0 :(得分:1)

你可以使用Mysql Query。

insert into table2 (empId,date,hours)
select emp_id,
'2015/10/11' as date,
case dayname('2015/10/11')
    when 'Sunday' then sun
    when 'Monday' then mon
    when 'Tuesday' then tue
    when 'Wednesday' then wed
    when 'Thursday' then thu
    when 'Friday' then fri
    when 'Saturday' then sat
else 0 end as hours
from table1

答案 1 :(得分:0)

通常情况下,我不会将格式化的员工小时数存储在表格中,只会将员工ID,日期和小时的原始信息存储起来。通过查询和/或PHP,我可以将数据格式化为我想要的任何格式,例如每周日历格式。这样做是比较好的数据库实践。