根据BETWEEN函数值,将INSERT上的值分配给DATETIME

时间:2012-10-26 03:22:22

标签: php mysql

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

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

TABLE2有interval_id,begin_time和end_time

示例:

  • INSERT语句,DATETIME为2012-10-24 07:29:41
  • 剥离时间
  • 在两个表中引用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"  

1 个答案:

答案 0 :(得分: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