fix(db): 空字符串datetime归一化为NULL,兼容MariaDB严格模式
monitor_events.event_end_time / event_details.frame_timestamp 收到空串时 插入 NULL 而非 '',避免 1292 Incorrect datetime value 报错
This commit is contained in:
@@ -175,6 +175,11 @@ def get_video_url_exists(video_path: str) -> bool:
|
||||
# monitor_events 操作
|
||||
# ============================================================
|
||||
|
||||
def _dt_or_none(value):
|
||||
"""datetime 字段归一化: 空串/None → NULL(MariaDB 严格模式拒绝 '' 插入 DATETIME 列)"""
|
||||
return value if value else None
|
||||
|
||||
|
||||
def insert_event(task_id: int, event_start_time: str, event_end_time: str,
|
||||
camera_name: str, global_summary: str, entities_json: list,
|
||||
compute_provider: list) -> int:
|
||||
@@ -187,7 +192,7 @@ def insert_event(task_id: int, event_start_time: str, event_end_time: str,
|
||||
(task_id, event_start_time, event_end_time, camera_name,
|
||||
global_summary, entities_json, compute_provider)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s)""",
|
||||
(task_id, event_start_time, event_end_time, camera_name,
|
||||
(task_id, _dt_or_none(event_start_time), _dt_or_none(event_end_time), camera_name,
|
||||
global_summary, json.dumps(entities_json, ensure_ascii=False),
|
||||
json.dumps(compute_provider, ensure_ascii=False))
|
||||
)
|
||||
@@ -214,7 +219,7 @@ def insert_event_detail(event_id: int, task_id: int, frame_index: int,
|
||||
(event_id, task_id, frame_index, frame_timestamp, camera_name,
|
||||
person, action, clothing, is_attention_event, source_providers)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""",
|
||||
(event_id, task_id, frame_index, frame_timestamp, camera_name,
|
||||
(event_id, task_id, frame_index, _dt_or_none(frame_timestamp), camera_name,
|
||||
person, action, clothing, is_attention_event,
|
||||
json.dumps(source_providers, ensure_ascii=False))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user