2009-03-27 53 views
5

Giống như một thằng ngốc, tôi đã bỏ qua hoàn toàn cài đặt múi giờ khi lần đầu tiên tôi xây dựng một ứng dụng thu thập dữ liệu datetime.Thay đổi múi giờ trên dự án Django hiện có

Đó không phải là vấn đề bởi vì tất cả những gì tôi đã làm là so sánh và sắp xếp kiểu "theo thời gian". Bây giờ tôi cần phải làm báo cáo đầy đủ cho thấy datetime thực tế và tất nhiên, tất cả chúng được lưu trữ tại Mỹ/Chicago (mặc định Django vô lý).

Vì vậy, có. Tôi có một cơ sở dữ liệu cỡ trung bình đầy đủ những ngày này không chính xác. Tôi muốn thay đổi settings.TIME_ZONE thành 'UTC' nhưng điều đó không giúp được dữ liệu hiện tại của tôi.

Cách tốt nhất (đọc: dễ nhất, nhanh nhất) để chuyển đổi tất cả dữ liệu Mô hình đó là gì?

(Tất cả các dữ liệu từ bên trong hai tháng qua, do đó, may mắn không có DST để chuyển đổi)

Dự án này hiện đang SQLite nhưng tôi có một dự án khác trên PostgreSQL với một vấn đề tương tự mà tôi có thể muốn làm tương tự trên trước khi DST đá vào ... Vậy lý tưởng là câu trả lời của DB-thuyết bất khả tri.

+0

cơ sở dữ liệu gì bạn đang sử dụng, btw? –

+0

SQLite nhưng nó hoàn toàn có thể tôi sẽ muốn làm điều tương tự trên một dự án khác mà tôi đã sử dụng Postgres cho ... Một cái gì đó DB-thuyết bất khả tri sẽ là lý tưởng =) – Oli

+1

SQLite lưu trữ mọi thứ dưới dạng văn bản. Một số cơ sở dữ liệu, tuy nhiên, lưu trữ datetime trong UTC nội bộ. Oracle, ví dụ, dịch UTC trong cơ sở dữ liệu thành localtime. Bạn không phải cập nhật bất cứ điều gì để thay đổi giờ địa phương được hiển thị. –

Trả lời

3

Tôi sẽ thực hiện cập nhật hàng loạt cho các bảng cơ sở dữ liệu bằng cách cộng hoặc trừ số giờ đến/từ trường ngày giờ.

Something như thế này làm việc trong SQL Server, và thêm 2 giờ để ngày:

update tblName set date_field = dateadd("hh", 2, data_field) 
Các vấn đề liên quan