2015-09-28 150 views
0

我有几个数据和mysql date datetime值。我需要返回总计数从给定dateperiod和给定时间段获取日期时间字段内给定的两个mysql时隙之间的几个时段的计数

Ex。

time    
2012-02-01 10:00 
2012-02-01 12:00 
2012-02-01 14:00 
2012-02-02 09:00  

2012-02-02 10:00  
2012-02-03 11:00  

如何在时间和日期槽形时间字段得到的数据基础上为这个问题,我只想从09:00摆脱日期2012-02-01数据2012-02-02和时间12:00所以这不应该提供2012-02-01 14:00希望你有这个数据现在

+2

你尝试过什么到目前为止什么?告诉我们你的代码。 “写我的代码给我”类型的问题在这里就不合时宜了。 – ciruvan

+0

我只是在日期查询之间尝试过,但没有完成时隙条件 –

+0

您使用了哪些代码来尝试?张贴在这里。 – M1ke

回答

0

试试这个 -

SELECT count(*) as c FROM users WHERE created_at 
BETWEEN '2012-02-01 09:00' AND '2012-02-02 02:00' AND 
Time(c) BETWEEN '09:00' AND '02:00' 
+0

我不想只从两个日期获取数据,但是这应该满足时间条件也请仔细阅读问题 –

+0

如何获取数据基础在这个问题上,我只想从日期2012-02-01到2012-02-02的时间和从09:00到12:00的时间,因此这不应该提供2012年的数据-02-01 14:00希望你现在得到这个 –

+0

检查更新.. –

0

您的查询一个错字。截止时间为14:00,而不是12:00:

SELECT COUNT(*) 
FROM users 
WHERE created_at BETWEEN '2012-02-01 09:00' AND '2012-02-02 14:00' ; 

编辑:

如果你想单独限制时间和日期,然后使用两个条件:

SELECT COUNT(*) 
FROM users 
WHERE created_at >= '2012-02-01' AND created_at < '2012-02-03' AND 
     time(created_at) BETWEEN '09:00:00' AND '14:00:00' ; 
+0

如何获取数据的基础上的时间和日期插槽形式的日期时间字段在这个问题,我只想从日期2012-02-01到2012-02-02和时间从09:00至12:00获取数据,因此,这应该不提供2012-02-01 14:00的数据希望你现在得到这个 –

0

您只需在您的声明中添加计数(*)。

SELECT count(*) FROM users WHERE created_at BETWEEN '2012-02-01 09:00' AND '2012-02-02 12:00' 
+0

如何获取数据基础的时间和日期插槽形式的日期时间字段在这个问题,我只想从日期2012-02-01 2012-02-02和时间从09:00到12:00,因此这不应该提供2012-02-01 14:00的数据希望你现在得到这个 –

+0

如何获取数据基础上的时间和日期槽格式日期时间字段在这个问题中,我只想从2012年2月1日到2012年2月2日的时间以及从09:00到12:00的时间获取数据,因此这不应该提供2012年2月1日至2月4日的数据。你现在得到了这个 –

0

2012-02-01 14:00被理所当然地包含在您的查询的结果,你想实现可以做到这样

SELECT * FROM users WHERE 
(DATE(created_at) BETWEEN '2012-02-01' AND '2012-02-02') 
AND 
(TIME(created_at) BETWEEN '09:00' AND '12:00') 
+0

我已经找到了这个由我自己查询是作为SELECT *从预订where(date(created_at)BETWEEN'2012-02-01'和'2012-02-02') AND (时间(created_at)'09:00:00'和'12:00:00'之间)感谢您的所有答案 –

相关问题