Solution / Workaround
เรื่อง timezone ได้แก้ไขไปแล้วเมื่อวันที่ 2026-01-06
แต่ยังไม่ได้แก้ไขในรายงานที่ 68 แต่ยังคงใช้เวลาที่บันทึกข้อมูลก่อนแก้ไข
ช่วงระยะเวลาที่ข้อมูลผิดคือ ตั้งแต่เริ่มระบบใหม่ 2025-12-16 ถึงวันที่ 2026-01-06 ประมาณ 20 วัน
แนวทางการดำเนินการ
- [เสี่ยงมาก] แก้ไขข้อมูลที่ผิดพลาดทั้งหมดในช่วงเวลาดังกล่าว
- [เสี่ยงปานกลาง] แก้ไขข้อมูลที่ผิดพลาดเฉพาะบางส่วนที่มีผลกระทบต่อการทำงาน เช่น ตารางยืมคืน ตารางสถิติ
- [ไม่เสี่ยง] ไม่แก้ไขข้อมูลที่ผิดพลาด (แจ้งเตือนให้ผู้ที่เกี่ยวข้องทราบถึงปัญหา)
ลูกค้าเลือกทางที่ 2
ตารางที่แก้ไข statistics, issues, old_issues
-- SQL UPDATE สำหรับแก้ไขข้อมูล Timezone Offset (+12 ชั่วโมง)
-- ช่วงที่ข้อมูลผิดพลาด: 2025-12-16 ถึง 2026-01-06
-- 1. ตรวจสอบจำนวนรายการก่อนแก้ไข
SELECT 'statistics' as table_name, COUNT(*) FROM statistics WHERE datetime >= '2025-12-16 00:00:00' AND datetime <= '2026-01-07 00:00:00';
SELECT 'issues' as table_name, COUNT(*) FROM issues WHERE issuedate >= '2025-12-16 00:00:00' AND issuedate <= '2026-01-07 00:00:00';
SELECT 'old_issues' as table_name, COUNT(*) FROM old_issues WHERE issuedate >= '2025-12-16 00:00:00' AND issuedate <= '2026-01-07 00:00:00';
START TRANSACTION;
-- แก้ไขตาราง statistics (สำหรับรายงาน)
UPDATE statistics
SET datetime = DATE_ADD(datetime, INTERVAL 12 HOUR)
WHERE datetime >= '2025-12-16 00:00:00' AND datetime <= '2026-01-07 00:00:00';
-- แก้ไขตาราง issues (ข้อมูลยืมปัจจุบัน)
UPDATE issues
SET issuedate = DATE_ADD(issuedate, INTERVAL 12 HOUR),
date_due = DATE_ADD(date_due, INTERVAL 12 HOUR),
lastreneweddate = IF(lastreneweddate IS NOT NULL, DATE_ADD(lastreneweddate, INTERVAL 12 HOUR), NULL)
WHERE issuedate >= '2025-12-16 00:00:00' AND issuedate <= '2026-01-07 00:00:00';
-- แก้ไขตาราง old_issues (ประวัติการยืม)
UPDATE old_issues
SET issuedate = DATE_ADD(issuedate, INTERVAL 12 HOUR),
date_due = DATE_ADD(date_due, INTERVAL 12 HOUR),
lastreneweddate = IF(lastreneweddate IS NOT NULL, DATE_ADD(lastreneweddate, INTERVAL 12 HOUR), NULL),
returndate = IF(returndate IS NOT NULL, DATE_ADD(returndate, INTERVAL 12 HOUR), NULL)
WHERE issuedate >= '2025-12-16 00:00:00' AND issuedate <= '2026-01-07 00:00:00';
-- ตรวจสอบตัวอย่างข้อมูลหลัง Update
-- SELECT datetime FROM statistics WHERE datetime >= '2025-12-16 00:00:00' LIMIT 10;
-- หากตรวจสอบแล้วถูกต้องให้รัน:
-- COMMIT;
-- หากต้องการยกเลิกให้รัน:
-- ROLLBACK;
Verification Steps