This commit is contained in:
hashbro
2026-09-16 22:29:13 +08:00
parent 2b0c67ad9c
commit 4a7e3f771e
6 changed files with 427 additions and 68 deletions
+34
View File
@@ -0,0 +1,34 @@
-- Only devices.* times. Dashboard / daily-report device counts use created_at
-- (and updated_at for「活跃」). Do not touch photos / visits / other tables.
--
-- 1) 备份 devices
-- 2) 把 @cutoff 改成切时区那一刻
-- 3) 先预览,再 START TRANSACTION … COMMIT
-- 4) 提交后:php artisan coruna:daily-stats --all
SET time_zone = '+08:00';
SET @cutoff = '2026-09-16 14:00:00'; -- TODO: 改成实际切时区的时间
SELECT 'created_at' AS col, COUNT(*) AS n, MIN(created_at) AS mn, MAX(created_at) AS mx
FROM devices WHERE created_at IS NOT NULL AND created_at < @cutoff
UNION ALL SELECT 'updated_at', COUNT(*), MIN(updated_at), MAX(updated_at)
FROM devices WHERE updated_at IS NOT NULL AND updated_at < @cutoff
UNION ALL SELECT 'first_seen_at', COUNT(*), MIN(first_seen_at), MAX(first_seen_at)
FROM devices WHERE first_seen_at IS NOT NULL AND first_seen_at < @cutoff
UNION ALL SELECT 'last_seen_at', COUNT(*), MIN(last_seen_at), MAX(last_seen_at)
FROM devices WHERE last_seen_at IS NOT NULL AND last_seen_at < @cutoff;
START TRANSACTION;
UPDATE devices SET created_at = DATE_SUB(created_at, INTERVAL 8 HOUR)
WHERE created_at IS NOT NULL AND created_at < @cutoff;
UPDATE devices SET updated_at = DATE_SUB(updated_at, INTERVAL 8 HOUR)
WHERE updated_at IS NOT NULL AND updated_at < @cutoff;
UPDATE devices SET first_seen_at = DATE_SUB(first_seen_at, INTERVAL 8 HOUR)
WHERE first_seen_at IS NOT NULL AND first_seen_at < @cutoff;
UPDATE devices SET last_seen_at = DATE_SUB(last_seen_at, INTERVAL 8 HOUR)
WHERE last_seen_at IS NOT NULL AND last_seen_at < @cutoff;
-- 后台看一台改时区前的设备,时间对了再 COMMIT
COMMIT;
-- ROLLBACK;