mysql检查其他时间之间的时间
我在做一个调度程序的工作。其中一个功能是将电视节目插入调度程序。在服务器端,通过发送带有请求的开始时间的程序id,即“在2012年9月17日10:49将程序id 123插入日程”。但节目必须在晚上10点至12点插入街区,即文化节目。因此,在插入之前,我们需要使用这段sql检查块是否存在mysql检查其他时间之间的时间,mysql,sql,Mysql,Sql,我在做一个调度程序的工作。其中一个功能是将电视节目插入调度程序。在服务器端,通过发送带有请求的开始时间的程序id,即“在2012年9月17日10:49将程序id 123插入日程”。但节目必须在晚上10点至12点插入街区,即文化节目。因此,在插入之前,我们需要使用这段sql检查块是否存在 SELECT t1.schedblockid, t1.blockname, t1.blockstart, t1.blockend, t2.scheduledate FROM scheduleblocks t1
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
这些表只是使用varchar而不是内置的日期时间类型,我想这就是我们需要更改的,但不确定如何/在哪里更改?非常感谢您的帮助。将表格结构更改为:
CREATE TABLE IF NOT EXISTS `schedule` (
`scheduleid` int(11) NOT NULL AUTO_INCREMENT,
`scheduledate` DATE NOT NULL,
`scheduleblock` TIME 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` TIME NOT NULL,
`blockend` TIME NOT NULL,
`linked` int(11) NOT NULL,
PRIMARY KEY (`schedblockid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
如果您不是从头开始,则需要更改您的表:
ALTER TABLE schedule CHANGE COLUMN `scheduledate` `scheduledate` DATE NOT NULL;
ALTER TABLE schedule CHANGE COLUMN `scheduleblock` `scheduleblock` TIME NOT NULL;
ALTER TABLE scheduleblocks CHANGE COLUMN `blockstart` `blockstart` TIME NOT NULL;
ALTER TABLE scheduleblocks CHANGE COLUMN `blockend` `blockend` TIME NOT NULL;
ALTER TABLE schedule CHANGE COLUMN `scheduledate` `scheduledate` DATE NOT NULL;
ALTER TABLE schedule CHANGE COLUMN `scheduleblock` `scheduleblock` TIME NOT NULL;
ALTER TABLE scheduleblocks CHANGE COLUMN `blockstart` `blockstart` TIME NOT NULL;
ALTER TABLE scheduleblocks CHANGE COLUMN `blockend` `blockend` TIME NOT NULL;