SQL选择两次之间的计数列

时间:2013-07-01 09:19:22

标签: sql oracle time count between

我有数据库,我有两列 - 日期(包括时间)和分钟 - 如下:

  

Open_Time分钟
  2013-01-01 09:00:00.000 1
  2013-01-01 09:01:00.000 1
  2013-01-01 09:02:00.000 1
  2013-01-01 09:03:00.000 1
  2013-01-01 09:04:00.000 1
  2013-01-01 09:05:00.000 1

如何计算第一个和最后一个日期时间之间的分钟数?

  

选择COUNT(分钟)
    来自test_table
    其中open_time在'2013-01-01 09:00:00.000'和'2013-01-01 09:05.000'之间

对我不起作用。

将来我需要将会议记录计为当前时间 - 开放时间

感谢您的任何反馈!

4 个答案:

答案 0 :(得分:3)

对于mysql可能可以使用:

SELECT TIMESTAMPDIFF(MINUTE,'2013-01-01 09:00:00.000','2013-01-01 09:05.000') ; // return result as minutes

请在此处阅读:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

答案 1 :(得分:1)

SQL看起来很好,虽然它返回6.你想要那个或者你想要5吗?如果你想要的话,你可以随时从09:01:00000开始你的SELECT标准。

SQLfiddle:http://sqlfiddle.com/#!2/d3f13/2

答案 2 :(得分:1)

我没有得到你想要的。但是如果想从你的约会中提取分钟,那么请使用以下查询。

SELECT EXTRACT(MINUTE FROM Open_Time) FROM test_table;

SELECT EXTRACT(MINUTE FROM Open_Time)-10 FROM test_table;

以上查询仅给出分钟差异。所以根据你的标准检查你的DAY,HOUR,MINUTE,SECONDS

答案 3 :(得分:0)

在sql server中你可以使用DATEDIFF函数,它接受以下参数: DATEDIFF(datepart,startdate,end date)并在所选datepart的指定日期边界之间返回count(int),因此您可以使用以下内容:

select DATEDIFF(mi,MIN(opentime),MAX(opentime)) AS 'minutes'
from test_table
where open_time between '2013-01-01 09:00:00.000' and '2013-01-01 09:05.000'

你也可以从列"分钟"云计算分钟数,但是用当前日期来计算它们是非常困难的(除非每次计算你在表中插入当前时间,或者创建临时表) )!