1

我想,在向表 1 插入新记录时,根据另一个表的值为 DATETIME 分配一个值,但无法将它们放在一起。

TABLE1 具有 interval_id 和 submit_date 列(以及许多其他列)

TABLE2 有 interval_id、begin_time 和 end_time

例子:

  • 日期时间为 2012-10-24 07:29:41 的 INSERT 语句
  • 剥离时间
  • 引用两个表中的 interval_id
  • 查找 TIME 在 T2.begin_time 和 T2.end_time 之间的位置(在这种情况下为 06:00:00 和 07:59:59)
  • 一旦确定,在 T1.interval_id 中为其分配相应的值

至今:

INSERT INTO `TABLE1` (null, now())
WHERE
  DATE(submit_date) = curdate()
  AND TIME(submit_date)

----不确定在这里编码以将 TIME 与开始和结束时间列数据进行比较----

完整的插入语句:

    $sql        = "INSERT INTO `summary` VALUES (null,'$user_id','$task_id',NOW(),'$tcompleted_id','$minutes_id','$hourinterval_id')
                   SELECT NOW(), hourinterval_id 
                   FROM `hour_interval` H
                   WHERE TIME(NOW()) BETWEEN H.start_hour AND H.end_hour LIMIT 1"  
4

1 回答 1

1

您可以插入SELECT语句的结果:

INSERT INTO `TABLE1`(curdate, interval_id)
SELECT now(), inteval_id FROM `TABLE2` t2 
WHERE TIME(now()) BETWEEN t2.start_time AND t2.end_time LIMIT 1
于 2012-10-26T03:28:29.713 回答