我正在使用oracle數據庫。 每個表都有一個creationdate和lastmodified字段。 lastmodified是時區的實際時間(UTC + 1 +夏令時,如果需要的話),而creationdate是同一時間,但在UTC + 0時,在夏季時間相差2小時,否則爲1小時。 有沒有更改創建日期的方法,以便在需要時使用utc + 1 +夏令時?由於Oracle數據庫和時區
0
A
回答
0
您可以使用此一:
ALTER SESSION SET TIME_ZONE = 'Europe/Zurich';
SELECT
TO_TIMESTAMP_TZ(TO_CHAR(creationdate,'yyyymmddhh24miss"UTC"'), 'yyyymmddhh24missTZR') AT LOCAL AS creationdate_local_TIMESTAMP,
CAST(TO_TIMESTAMP_TZ(TO_CHAR(creationdate,'yyyymmddhh24miss"UTC"'), 'yyyymmddhh24missTZR') AT LOCAL AS DATE) AS creationdate_local_DATE
FROM your_table;
您必須會話時區設置你的區域像上面。如果您使用靜態值(例如ALTER SESSION SET TIME_ZONE = '+02:00';
),它將無法正常工作。
重要提示:如果您更新轉換時間值的表,那麼你必須確保你不這樣做幾次,因爲每次更新時間將由1或2小時一次又一次地移動。
+0
我試過了,結果我有2個字段:creation_local_timestamp和creation_local_date。兩者都有我想要的時間,但是當我查看我的creationdate字段的值時,它仍然是相同的,就像沒有任何事情發生一樣。我正在尋找一個解決方案來更新已經存在的創建日期,但是對於每一個新行,creationdate也會與這個時區匹配,就像lastmodified已經做的那樣 – NeS
相關問題
- 1. 時區數據庫和DST
- 2. 解釋「創建數據庫」時Oracle和Mysql有什麼區別?
- 3. Oracle客戶端和Oracle數據庫之間的確切區別
- 4. 數據庫時區
- 5. 會話和數據庫的oracle數據庫時區,更改會話區域不起作用
- 6. 選擇日期+時間+時區與Oracle數據庫
- 7. Oracle數據庫手冊表分區
- 8. 日期和Oracle數據庫
- 9. javascript和Oracle數據庫
- 10. oracle數據庫和用戶
- 11. 數據庫oracle
- 12. 數據庫Oracle
- 13. Oracle數據庫
- 14. 無法識別Oracle數據庫的正確時區
- 15. 如何改變Oracle 9i數據庫的時區
- 16. 數據類型的日期和時間Oracle數據庫
- 17. dateTime在數據庫(oracle)和客戶端(asp.net 3.5)中的區別
- 18. 在Oracle數據庫中,ROWNUM和ROW_NUMBER有什麼區別?
- 19. Windows時區數據庫
- 20. 所有時區數據庫
- 21. 從Oracle數據庫
- 22. Oracle SQL數據庫
- 23. XML Oracle數據庫
- 24. Android的數據庫Oracle數據庫
- 25. 比較SQL Server數據庫架構和Oracle數據庫架構
- 26. 更新到數據庫時出錯:Oracle
- 27. 聲明Oracle數據庫臨時變量
- 28. 更新時間Oracle數據庫
- 29. 插入時間戳到Oracle數據庫
- 30. Oracle數據庫表列時間戳
這些列的數據類型以及它們是如何填充的? –
它是Date類型的,我不知道它們是如何填充的,但每次發送請求時,當我創建一個新行時,字段creationdate都會更新,並且只是更新時,lastmodified會更新,它是自動的,也許它是由oracle完成的,或者它可能在其他地方配置,不知道。 – NeS