CREATE TABLE `tb_con` (
`id` int(6) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
`date_f` date NOT NULL,
`time_f` time NOT NULL,
`date_l` date NOT NULL,
`time_l` time NOT NULL,
`status` char(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ยกตัวอย่างข้อมูล
id|name| date_f | time_f | date_l | time_l |status
1 | A |2011-03-15|16:30:00|2011-03-18|17:45:00| N
2 | B |2011-03-16|08:30:00|2011-03-18|16:00:00| N
ผมต้องทำอย่างไรถ้ามีการเพิ่ม
3| A |2011-03-17|09:00:00|2011-03-19|16:00:00| N
จะต้องแจ้งว่า A มีอยู่ในช่วงเวลานั้นแล้ว แต่ที่ A จะเพิ่มได้คือ หลังเวลา 2011-03-18 17:45:00 เป็นต้นไป
อยากจะบอกว่ามันง่าย ๆ เลยครับ ขั้นแรกอยากให้เก็บวันที่และเวลาไว้ในฟิวด์เดียวกันเลยครับ แล้วก้ใช้คำสั่ง BETWEEN ในการตรวจสอบครับ
ตามตัวอย่างครับ
Code
SELECT * FROM table booking WHERE (StartDate BETWEEN '2011-05-17 18:00:00' and '2011-05-20 21:00:00') OR (EndDate BETWEEN '2011-05-17 18:00:00' and '2011-05-20 21:00:00')