1
我正在做一些調度程序的工作。其中一項功能是將電視節目插入調度器。在服務器端,這通過發送具有所請求的開始時間的節目標識符,即'在17-09-2012的10:49將插入節目標識符123插入到日程表中'來工作。但節目必須插入到塊中,即從晚上10點到12點的文化節目。所以插入之前,我們需要檢查一個塊存在,這片SQL的mysql檢查其他時間之間的時間
SELECT t1.schedblockid, t1.blockname,
t1.blockstart, t1.blockend, t2.scheduledate
FROM scheduleblocks t1, schedule t2
WHERE t1.schedblockid = t2.scheduleblock
AND t2.scheduledate = '$_GET[scheddate]'
AND '$_GET[schedtime]' >= blockstart
AND '$_GET[schedtime]' <= blockend
其簡單和作品,在上面的例子中它會檢查塊的時間表存在17-09-2012中10.49可以適合。我們現在面臨的問題是,我們正在試圖引入跨日模塊,例如從晚上11點到凌晨2點。但是對於上面的sql代碼,例如當搜索時間23:51時不會找到插槽23:00-02:00。
繼承人表的定義。
CREATE TABLE IF NOT EXISTS `schedule` (
`scheduleid` int(11) NOT NULL AUTO_INCREMENT,
`scheduledate` varchar(20) NOT NULL,
`scheduleblock` int(11) NOT NULL,
PRIMARY KEY (`scheduleid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;
CREATE TABLE IF NOT EXISTS `scheduleblocks` (
`schedblockid` int(11) NOT NULL AUTO_INCREMENT,
`blockname` varchar(100) NOT NULL,
`blockstart` varchar(10) NOT NULL,
`blockend` varchar(10) NOT NULL,
`linked` int(11) NOT NULL,
PRIMARY KEY (`schedblockid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
表只使用VARCHAR處理,而不是建立在日期時間類型,我想這就是我們所需要的改變,但不知道如何/在哪裏?任何幫助不勝感激。