更新时区信息
This commit is contained in:
@@ -281,5 +281,7 @@ async def delete_scada_data(
|
|||||||
end_time: datetime,
|
end_time: datetime,
|
||||||
conn: AsyncConnection = Depends(get_database_connection),
|
conn: AsyncConnection = Depends(get_database_connection),
|
||||||
):
|
):
|
||||||
await ScadaRepository.delete_scada_by_id_time(conn, device_id, start_time, end_time)
|
await ScadaRepository.delete_scada_by_id_time_range(
|
||||||
|
conn, device_id, start_time, end_time
|
||||||
|
)
|
||||||
return {"message": "Deleted successfully"}
|
return {"message": "Deleted successfully"}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
from typing import List, Any, Dict
|
from typing import List, Any, Dict
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta, timezone
|
||||||
from psycopg import AsyncConnection, sql
|
from psycopg import AsyncConnection, sql
|
||||||
|
|
||||||
|
# 定义UTC+8时区
|
||||||
|
UTC_8 = timezone(timedelta(hours=8))
|
||||||
|
|
||||||
|
|
||||||
class RealtimeRepository:
|
class RealtimeRepository:
|
||||||
|
|
||||||
@@ -287,11 +290,22 @@ class RealtimeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert result_start_time string to datetime if needed
|
# Convert result_start_time string to datetime if needed
|
||||||
if isinstance(result_start_time, str):
|
if isinstance(result_start_time, str):
|
||||||
simulation_time = datetime.fromisoformat(
|
# 如果是ISO格式字符串,解析并转换为UTC+8
|
||||||
result_start_time.replace("Z", "+00:00")
|
if result_start_time.endswith("Z"):
|
||||||
)
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(
|
||||||
|
result_start_time.replace("Z", "+00:00")
|
||||||
|
)
|
||||||
|
simulation_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
simulation_time = datetime.fromisoformat(result_start_time)
|
||||||
|
if simulation_time.tzinfo is None:
|
||||||
|
simulation_time = simulation_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
simulation_time = result_start_time
|
simulation_time = result_start_time
|
||||||
|
if simulation_time.tzinfo is None:
|
||||||
|
simulation_time = simulation_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Prepare node data for batch insert
|
# Prepare node data for batch insert
|
||||||
node_data = []
|
node_data = []
|
||||||
@@ -353,9 +367,19 @@ class RealtimeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert query_time string to datetime
|
# Convert query_time string to datetime
|
||||||
if isinstance(query_time, str):
|
if isinstance(query_time, str):
|
||||||
target_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
if query_time.endswith("Z"):
|
||||||
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
||||||
|
target_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
target_time = datetime.fromisoformat(query_time)
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
target_time = query_time
|
target_time = query_time
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Create time range: query_time ± 1 second
|
# Create time range: query_time ± 1 second
|
||||||
start_time = target_time - timedelta(seconds=1)
|
start_time = target_time - timedelta(seconds=1)
|
||||||
@@ -394,9 +418,19 @@ class RealtimeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert query_time string to datetime
|
# Convert query_time string to datetime
|
||||||
if isinstance(query_time, str):
|
if isinstance(query_time, str):
|
||||||
target_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
if query_time.endswith("Z"):
|
||||||
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
||||||
|
target_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
target_time = datetime.fromisoformat(query_time)
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
target_time = query_time
|
target_time = query_time
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Create time range: query_time ± 1 second
|
# Create time range: query_time ± 1 second
|
||||||
start_time = target_time - timedelta(seconds=1)
|
start_time = target_time - timedelta(seconds=1)
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
from typing import List, Any, Dict
|
from typing import List, Any, Dict
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta, timezone
|
||||||
from psycopg import AsyncConnection, sql
|
from psycopg import AsyncConnection, sql
|
||||||
|
|
||||||
|
# 定义UTC+8时区
|
||||||
|
UTC_8 = timezone(timedelta(hours=8))
|
||||||
|
|
||||||
|
|
||||||
class SchemeRepository:
|
class SchemeRepository:
|
||||||
|
|
||||||
@@ -309,11 +312,20 @@ class SchemeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert result_start_time string to datetime if needed
|
# Convert result_start_time string to datetime if needed
|
||||||
if isinstance(result_start_time, str):
|
if isinstance(result_start_time, str):
|
||||||
simulation_time = datetime.fromisoformat(
|
# 如果是ISO格式字符串,解析并转换为UTC+8
|
||||||
result_start_time.replace("Z", "+00:00")
|
if result_start_time.endswith('Z'):
|
||||||
)
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(result_start_time.replace("Z", "+00:00"))
|
||||||
|
simulation_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
simulation_time = datetime.fromisoformat(result_start_time)
|
||||||
|
if simulation_time.tzinfo is None:
|
||||||
|
simulation_time = simulation_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
simulation_time = result_start_time
|
simulation_time = result_start_time
|
||||||
|
if simulation_time.tzinfo is None:
|
||||||
|
simulation_time = simulation_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Prepare node data for batch insert
|
# Prepare node data for batch insert
|
||||||
node_data = []
|
node_data = []
|
||||||
@@ -379,9 +391,19 @@ class SchemeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert query_time string to datetime
|
# Convert query_time string to datetime
|
||||||
if isinstance(query_time, str):
|
if isinstance(query_time, str):
|
||||||
target_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
if query_time.endswith('Z'):
|
||||||
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
||||||
|
target_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
target_time = datetime.fromisoformat(query_time)
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
target_time = query_time
|
target_time = query_time
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Create time range: query_time ± 1 second
|
# Create time range: query_time ± 1 second
|
||||||
start_time = target_time - timedelta(seconds=1)
|
start_time = target_time - timedelta(seconds=1)
|
||||||
@@ -422,9 +444,19 @@ class SchemeRepository:
|
|||||||
"""
|
"""
|
||||||
# Convert query_time string to datetime
|
# Convert query_time string to datetime
|
||||||
if isinstance(query_time, str):
|
if isinstance(query_time, str):
|
||||||
target_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
if query_time.endswith('Z'):
|
||||||
|
# UTC时间,转换为UTC+8
|
||||||
|
utc_time = datetime.fromisoformat(query_time.replace("Z", "+00:00"))
|
||||||
|
target_time = utc_time.astimezone(UTC_8)
|
||||||
|
else:
|
||||||
|
# 假设已经是UTC+8时间
|
||||||
|
target_time = datetime.fromisoformat(query_time)
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
else:
|
else:
|
||||||
target_time = query_time
|
target_time = query_time
|
||||||
|
if target_time.tzinfo is None:
|
||||||
|
target_time = target_time.replace(tzinfo=UTC_8)
|
||||||
|
|
||||||
# Create time range: query_time ± 1 second
|
# Create time range: query_time ± 1 second
|
||||||
start_time = target_time - timedelta(seconds=1)
|
start_time = target_time - timedelta(seconds=1)
|
||||||
|
|||||||
Reference in New Issue
Block a user