2014-09-04 105 views
0

我有我的選擇查詢日期如下格式日期在SQL SELECT查詢

Thu Sep 04 23:03:30 GMT 2014 

,並在我的表日期是這種格式

13-NOV-13 03.38.22.000000000 AM 

我怎樣才能在數據庫格式轉換。我嘗試使用

TO_CHAR('Thu Sep 04 23:03:30 GMT 2014','DD-MMM-YY HH:MI:SS') 

但無法正常工作。任何幫助將不勝感激。

+0

爲什麼你需要將該文字作爲select語句的一部分? – 2014-09-04 23:45:01

+0

然後我應該手動更改格式爲GMT格式的日期並在查詢中使用它嗎? – Deepak 2014-09-04 23:48:44

+0

你想做什麼?我想我只是不明白這個問題。 – 2014-09-04 23:50:53

回答

1

此:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH:MI:SS') 
from dual 

將通過 '週四04九月23時03分30秒格林尼治標準時間2014'

代表的時間戳

成格式'DD-MON-YY HH:MI:SS'(我想你的意思是MON,而不是MMM)

但輸入文字必須被更改爲 '2014年9月4日23點03分30秒GMT'(如圖所示)

小提琴:http://sqlfiddle.com/#!4/d41d8/34741/0

輸出:

04-SEP-14 11:03:30 

然而,您在選擇列表中放入的格式僅包含秒,而您表示您在表格中存儲了小數秒(可能是時間戳字段),因此要使用FF而不是SS來匹配該格式。另外,您表示您使用的是HH12格式,而不是HH(12小時與24小時)。要做到這些,你會想比你正在嘗試轉換爲不同的格式:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH12:MI:FF AM') 
from dual 

小提琴:http://sqlfiddle.com/#!4/d41d8/34744/0

注意,如果時間是在一天的後半段它會顯示下午而不是上午,儘管你在sql中看到AM(參見http://www.techonthenet.com/oracle/functions/to_char.php

輸出:

04-SEP-14 11:03:000000000 PM 
0

試試這個:

LEFT(DATENAME(dw,date),3) +' '+  CAST(date AS VARCHAR(20)) 
+1

Hiya,這可能很好地解決了這個問題......但是如果你能夠編輯你的答案並提供一些關於它是如何以及爲什麼有效的解釋的話,那就很好了:)不要忘記 - 有一堆新手堆棧溢出,他們可以從你的專業知識中學到一兩樣東西 - 對你來說很明顯對他們來說可能不是這樣。 – 2014-09-05 01:33:27

+0

@TarynEast感謝您的信息;我一定會在下次更徹底地解釋我的答案。 – ItalianStallion 2014-09-05 16:16:46

+0

這次你也可以這樣做......只需編輯你的答案並添加一個或兩個句子:) – 2014-09-05 21:59:27