2015-06-15 35 views
0

我在Oracle SQL Developer中工作拉日期在適當的格式,並具有下列代碼如何從時間戳

SELECT Trunc(assigned_date, 'IW') AS bonus_week 
FROM (SELECT Trunc(blf.assigned_date) AS assigned_date 
     FROM olap.bonus_lifecycle_fact blf) 

我以這種形式

07-12-03 

08-01-28 

08-01-28 

08-01-28 

08-01-07 

得到輸出,是DD-MM --YY

這很好,除了我導出到Excel時,我得到了一些不可思議的事情發生。

eg: 08-01-28 becomes 08-01-2028. 

我認爲這是因爲blf.assigned_date是一個時間戳,但我不確定要糾正它。任何和所有幫助表示讚賞。謝謝!

+0

大概Excel中是「有益的」,嘗試導出爲CSV格式。 – OTTA

+0

Excel是問題,而不是Oracle。將Excel列格式化爲自定義日期格式以符合您的標準 – kevinsky

+0

我不認爲它的優點 - 如果在excel中輸入28作爲年份,將其轉換爲2028類似於oracle的RR格式。年份需要用4位數來正確解釋爲1928年(假設這是什麼問題)。 OP可以確認 – 6ton

回答

0

嘗試使用to_char函數格式化日期以使用完整的4位數年份,然後執行導出爲ex​​cel。

SELECT TO_CHAR(Trunc(assigned_date, 'IW'), 'MM-DD-YYYY') AS bonus_week 

注意:我假設你有28個問題得到轉換爲2028,而不是1928年以上的解決方案應該解決這個問題。

此外,您還可以更改Excel列的格式,顯示今年2個位數(28,而不是1928年或2028)

+1

(如果你正在做日期的to_char,在這種情況下你不需要額外的trunc。) – Boneist

+0

SELECT TO_CHAR(Trunc(assigned_date,'IW'),'MM-DD-YYYY')AS bonus_week 這工作!非常感謝! –