Xin lỗi, tôi không có câu trả lời cho câu hỏi trực tiếp của bạn. Tuy nhiên, tôi có thể đề xuất một điều gì đó đáng xem xét sẽ tránh hoàn toàn tất cả các vấn đề về múi giờ tại cơ sở dữ liệu. Nếu có thể, tôi khuyên bạn chỉ nên sử dụng BIGINT
các trường để lưu trữ ngày tháng với Java. Bạn chỉ cần lưu trữ long
trong số phần nghìn giây kể từ kỷ nguyên, ví dụ:từ System.currentTimeMillis()
hoặc Date.getTime()
.
Sau đó, việc giải thích múi giờ cho một ngày luôn được quản lý trong Java, điều này rất tốt khi sử dụng số dựa trên kỷ nguyên. Việc truy vấn trực tiếp cơ sở dữ liệu cho một ngày bên ngoài Java sẽ làm cho việc truy vấn trực tiếp cơ sở dữ liệu trở nên phức tạp hơn một chút, tuy nhiên nó không quá khó và có xu hướng đáng giá IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;