From fc80e5038c7f6907516bd49d50ed0d94dfc0a076 Mon Sep 17 00:00:00 2001 From: lishuai Date: Fri, 10 Jan 2025 09:28:11 +0800 Subject: [PATCH] =?UTF-8?q?tskv=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=B9=B4?= =?UTF-8?q?=E6=9C=88=E6=97=A5=E6=97=B6=E5=88=86=E7=A7=92=202025=E5=B9=B41?= =?UTF-8?q?=E6=9C=8810=E6=97=A509:28:08?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tskv/service/tskv/TsKvPgServiceImpl.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java b/common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java index ea4206f..0f3fb7e 100644 --- a/common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java +++ b/common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java @@ -361,13 +361,27 @@ public class TsKvPgServiceImpl extends ServiceImpl impleme .append(" generate_series ( TO_TIMESTAMP( ").append(startTime).append(" / 1000 ), ") .append(" TO_TIMESTAMP( ").append(endTime).append("/ 1000 ), INTERVAL '") .append(interval).append(" ").append(timeType).append("' ) AS T )"); - sql.append(" SELECT thing_code,attr_key,date_list.ts,ROUND(").append(agg).append("(CAST(val AS DECIMAL)), 2) as val FROM thing_ts_kv as tskv ") - .append(" JOIN date_list ON "); + sql.append(" SELECT thing_code,attr_key,date_list.ts,") + .append(" EXTRACT(YEAR FROM to_timestamp(date_list.ts / 1000)) AS year,") + .append(" EXTRACT(MONTH FROM to_timestamp(date_list.ts / 1000)) AS month,") + .append(" EXTRACT(DAY FROM to_timestamp(date_list.ts / 1000)) AS day,") + .append(" EXTRACT(HOUR FROM to_timestamp(date_list.ts / 1000)) AS hour,") + .append(" EXTRACT(MINUTE FROM to_timestamp(date_list.ts / 1000)) AS minute,") + .append(" EXTRACT(SECOND FROM to_timestamp(date_list.ts / 1000)) AS second ") + .append(",ROUND(") + .append(agg) + .append("(CAST(val AS DECIMAL)), 2) as val FROM thing_ts_kv as tskv ") + .append(" JOIN date_list ON "); sql.append(" EXTRACT ( epoch FROM date_trunc( '").append(timeType).append("', ( to_timestamp( tskv.ts / 1000 ) AT TIME ZONE'UTC+0' ) AT TIME ZONE'UTC+8' ) ) * 1000 "); sql.append("= date_list.ts GROUP BY thing_code,attr_key,date_list.ts ORDER BY date_list.ts "); }else{ - sql.append(" SELECT thing_code, attr_key, time as ts,val from (") - .append(" SELECT thing_code, attr_key, ") + sql.append(" SELECT thing_code, attr_key, time as ts,val, EXTRACT(YEAR FROM to_timestamp(time / 1000)) AS year, ") + .append(" EXTRACT(MONTH FROM to_timestamp(time / 1000)) AS month, ") + .append(" EXTRACT(DAY FROM to_timestamp(time / 1000)) AS day, ") + .append(" EXTRACT(HOUR FROM to_timestamp(time / 1000)) AS hour, ") + .append(" EXTRACT(MINUTE FROM to_timestamp(time / 1000)) AS minute, ") + .append(" EXTRACT(SECOND FROM to_timestamp(time / 1000)) AS second ") + .append(" from (SELECT thing_code, attr_key, ") .append(" (FLOOR((ts - ").append(startTime).append(" ) / ( "); if (TimeType.DAY.equals(timeType)) {