2012-03-21 93 views
1

我的表结构是这样的..时间可用性MySQL查询检查

CREATE TABLE IF NOT EXISTS `pec_mssgs` (
     `id` mediumint(5) unsigned NOT NULL AUTO_INCREMENT, 
     `uid` tinyint(3) unsigned NOT NULL DEFAULT '0', 
     `start_timestamp` varchar(100) DEFAULT NULL, 
     `end_timestamp` varchar(100) DEFAULT NULL, 
     `title` varchar(50) NOT NULL DEFAULT '', 
     `text` text NOT NULL, 
     PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; 

这里只有两个字段是很重要的:保存时间戳记, start_timestampend_timestamp

所以预订条件像。

有两辆汽车招聘。

因此,用户可以插入预约汽车的日期和时间。

所以在同一时间有两个插槽可以接受预订。

如果有人预订一辆车从10:0013:00和其他用户可以预订一辆车从12:0013:00因为有两辆车的预订。

所以问题是,如果用户想要从10:00预订出租车到11:00那么它也可以是可能的只有一辆车在这些周期之间已经预订所以它必须预订。

所以我希望有一个单一的查询,可以了解有多少预订我们通过用户输入指定的时隙之间的分贝在那里。

+2

是否存在以VARCHAR格式存储时间而不是本机MySQL日期/时间类型之一的原因? – liquorvicar 2012-03-21 16:04:39

+0

为什么不使用'timestamp'或'datetime'数据类型来存储日期和时间?为什么varchar? – 2012-03-21 16:07:11

+0

是的,我把它存储在时间戳,这是不是一个问题做任何你想要的类型我只需要一个查询,可以找出两个时隙之间的行。 – pravat231 2012-03-21 16:11:37

回答

-1

难道仅仅select * from pec_mssgs where start_timestamp <= '11:00:00' and end_timestaml >= '11:30:00'还是我误解你的要求是什么?

+0

这是不正确的还有更多的条件... – pravat231 2012-03-21 18:32:14

+1

@ pravat231所以你可以澄清这些条件? – 2012-03-21 18:46:20