2012-08-14 69 views
0

我有一个问题。我想在它们的值被改变时在行值之间找到时间差异。我有以下类似的数据在我的表,对于例如:如何从给定数据库获取充电时间?

------------------------------------ 
    DateandTime  | DCStatus 
------------------------------------ 
2012-01-01 01:00:00 | Using 
2012-01-02 02:00:00 | Using 
2012-01-03 03:00:00 | Using 
2012-01-04 04:00:00 | Charging 
2012-01-05 05:00:00 | Charging 
2012-01-06 06:00:00 | Using 
2012-01-06 07:00:00 | Using 
2012-01-06 08:00:00 | Using 
2012-01-05 09:00:00 | Charging 
2012-01-05 10:00:00 | Charging 
2012-01-05 11:00:00 | Charging 
------------------------------------ 

从这个给定的数据库我如何计算平均充电时间和放电时间?我对SQL编程非常陌生。请帮帮我!!

回答

1

就我所知,您将无法使用标准查询来执行此操作。你有两个选择:

  • 使用存储过程和MySQL programming constructs达到预期的效果
  • 查询的数据,并使用你正在构建应用程序的其余部分的编程语言来处理它

如果您没有特别强制要在数据库中进行这种计算,我会建议后一种选择 - 编程语言通常更适合这些类型的计算,并且您的应用程序将更少地依赖MySQL作为数据库。

0
select avg(Time(DateandTime)) from yourTable where DCStatus = 'Charging' or DCStatus = 'DisCharging' group by DCStatus; 

我不确定这是否适用于MySQL,我没有时间去测试它,但它应该可以工作。

+0

我需要平均的时间!它也输出日期。 – 2012-08-14 09:57:29

+0

好的,我编辑了我的答案,尝试新的代码。 – 2012-08-14 10:46:44

+0

你是一个拯救生命的人,谢谢。我只需要做一些小的改动 ''select avg(Second(DateandTime))from yourTable其中DCStatus ='Charging'或DCStatus ='DisCharging'组由DCStatus' – 2012-08-14 18:39:18

相关问题