From b0ef8f44fc86fbdfa9c247785edefa343c7daa37 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Tue, 24 Feb 2015 08:42:47 +0000 Subject: [PATCH] More fixes for PgSQL --- src/Models/Metric.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Models/Metric.php b/src/Models/Metric.php index ccff29c3..948567ad 100644 --- a/src/Models/Metric.php +++ b/src/Models/Metric.php @@ -7,6 +7,7 @@ use DateInterval; use DateTime; use Dingo\Api\Transformer\TransformableInterface; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\DB; use Watson\Validating\ValidatingTrait; @@ -74,7 +75,11 @@ class Metric extends Model implements TransformableInterface $dateTime = new DateTime(); $dateTime->sub(new DateInterval('PT'.$hour.'H')); - $value = (int) $this->points()->whereRaw('DATE_FORMAT(created_at, "%Y%c%e%H") = '.$dateTime->format('YmdH'))->whereRaw('HOUR(created_at) = HOUR(DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR))')->groupBy(DB::raw('HOUR(created_at)'))->sum('value'); + if (Config::get('database.default') === 'mysql') { + $value = (int) $this->points()->whereRaw('DATE_FORMAT(created_at, "%Y%c%e%H") = '.$dateTime->format('YmdH'))->whereRaw('HOUR(created_at) = HOUR(DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR))')->groupBy(DB::raw('HOUR(created_at)'))->sum('value'); + } else { + $value = (int) $this->points()->whereRaw('to_char(created_at, "YYYYMMDDHH") = '.$dateTime->format('YmdH'))->whereRaw('DATE_PART("hour", created_at) = DATE_PART("hour", NOW() - INTERVAL "'.$hour.' hour")')->groupBy(DB::raw('HOUR(created_at)'))->sum('value'); + } if ($value === 0 && $this->default_value != $value) { return $this->default_value;