我有一张包含员工详细信息的表格,包括他们每天工作的小时数(轮班工作)
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中 感谢
答案 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,我可以将数据格式化为我想要的任何格式,例如每周日历格式。这样做是比较好的数据库实践。