它取決於列ORDERDATE
的數據類型。數據類型DATE
或TIMESTAMP
不包含任何時區信息。在這種情況下,您可以僅將IST
作爲靜態文本附加,例如像這樣。
SELECT ORDERID AS ORD_ID,
TO_CHAR(ORDERDATE, 'Dy Mon dd HH24:MI:SS yyyy')||' IST' AS ORDER_DATE
FROM ORDER;
SELECT ORDERID AS ORD_ID,
TO_CHAR(ORDERDATE, 'Dy Mon dd HH24:MI:SS yyyy "IST"') AS ORDER_DATE
FROM ORDER;
在ORDERDATE
情況下,數據類型是TIMESTAMP
你還可以將你的時區,並使用這個輸出:
SELECT ORDERID AS ORD_ID,
TO_CHAR(FROM_TZ(ORDERDATE , 'Asia/Calcutta'), 'Dy Mon dd HH24:MI:SS yyyy TZD') AS ORDER_DATE
FROM ORDER;
ALTER SESSION SET TIME ZONE = 'Asia/Calcutta';
SELECT ORDERID AS ORD_ID,
TO_CHAR(ORDERDATE AT LOCAL, 'Dy Mon dd HH24:MI:SS yyyy TZD') AS ORDER_DATE
FROM ORDER;
在ORDERDATE
情況下,數據類型是TIMESTAMP WITH TIME ZONE
你可以簡單地做:
ALTER SESSION SET TIME ZONE = 'Asia/Calcutta';
SELECT ORDERID AS ORD_ID,
TO_CHAR(ORDERDATE, 'Dy Mon dd HH24:MI:SS yyyy TZD') AS ORDER_DATE
FROM ORDER;
請注意,除了最後一個查詢,只有當ORDERDATE
中的值存儲爲「亞洲/加爾各答」時間時,所有這些纔會正常工作。
另一個說明,你不能使ALTER SESSION SET TIME ZONE = 'IST';
或FROM_TZ(ORDERDATE, 'IST')
。 IST也可能意味着「以色列標準時間」或「冰島標準時間」(甚至更多),因此您將在Oracle中出現錯誤。時區名稱Asia/Kolkata
也很好,只要您在數據庫中安裝了最新的時區文件。
我不明白你想要什麼 –
顯示錶結果和您的預期輸出。 –