Browse Source

tskv表增加年月日时分秒

2025年1月10日09:28:08
qingyuan_dev_new
lishuai 1 year ago
parent
commit
fc80e5038c
  1. 22
      common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java

22
common/tskv/src/main/java/com/thing/common/tskv/service/tskv/TsKvPgServiceImpl.java

@ -361,13 +361,27 @@ public class TsKvPgServiceImpl extends ServiceImpl<TsKvPgMapper, TsKvPg> 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)) {

Loading…
Cancel
Save