当时间在Varchar类型中时,如何比较MySQLi查询中的时间

时间:2016-02-15 07:54:24

标签: php mysqli

如何比较时间,在varchar字段中存储时间,如 09:00 AM 。有两次,开始时间和结束时间。我想显示来自用户输入的特定时间之间的所有记录。例如:

SELECT * FROM table WHERE `starttime` > '09:00 AM' AND `endtime` < '05:00 PM'

我已经尝试过:

SELECT * FROM table WHERE TIME_FORMAT( `starttime`, "%h:%i %p" ) > '09:00 AM' 

AND

TIME_FORMAT( `endtime`, "%h:%i %p" ) < '02:30 PM'

基本数据库结构就像这样

CREATE TABLE table
(`id` int, `date` DATE, `location` varchar(55),`starttime` varchar(55),
`endtime` varchar(55));

INSERT INTO table
(`id`, `date`, `location`,`starttime`,`endtime`)
VALUES
(1, '2015-01-01', 'rnd','02:00 PM','04:00 PM'),
(2, '2015-01-10' ,'rnd','09:00 AM','02:00 PM'),
(3, '2015-01-03', 'rnd','03:00 PM','04:30 PM'),
(4, '2015-01-04', 'rnd','09:00 AM','05:30 PM'),
(5, '2015-01-05', 'rnd','11:00 AM','01:30 PM'),
(6, '2015-01-02', 'rnd','08:00 AM','01:30 PM'),
(7, '2015-01-03', 'rnd','10:00 AM','09:30 PM')
; 

现在,当我使用starttime&gt;运行查询时'09:00''和结束时间&lt; '05:00'' 查询应该返回1,3,5行。

0 个答案:

没有答案