1
我爲我的cgi應用程序使用SQLite,但是我所在的時區與共享服務器上運行的時區不同。我可以在SQLite中以某種方式設置我的時區,所以我不需要用時間轉換弄亂我的應用程序,並且可以在我的SQL中使用NOW()之類的東西?如果不是,我的其他選擇是什麼?如何設置SQL的時區?
我爲我的cgi應用程序使用SQLite,但是我所在的時區與共享服務器上運行的時區不同。我可以在SQLite中以某種方式設置我的時區,所以我不需要用時間轉換弄亂我的應用程序,並且可以在我的SQL中使用NOW()之類的東西?如果不是,我的其他選擇是什麼?如何設置SQL的時區?
SQLite沒有辦法設置連接時區,因爲它是針對嵌入式數據庫的用途 - 無論您用什麼來更改您的C庫localtime()輸出都適用於SQLite。這適用於我在MacOS上:
$ TZ=America/New_York sqlite3 dbfile "select datetime('now','localtime');"
2010-01-06 09:53:28
$ TZ=America/Los_Angeles sqlite3 dbfile "select datetime('now','localtime');"
2010-01-06 06:53:41
我認爲這是不同的。正如我所說:我不想搞亂我的應用程序代碼,並且我沒有直接使用SQLite(並且不想)。我正在使用Elixir訪問數據庫。 – akosch 2010-01-06 14:46:28
您的應用程序恰好是將UTC時間轉換爲本地時間以供用戶使用的正確位置。這是一個類似於日期格式本身的演示文稿,它絕對不應該觸及數據庫層。後端時間值應始終始終爲UTC。 – bobince 2010-01-06 14:54:30