2012-01-31 226 views
2

我想格式化一個字符串爲「YYYY/MM/DD」的db2日期。格式化日期到字符串

我迄今爲止最好的是:

SELECT CAST(YEAR(MYDATE) AS VARCHAR(4)) || '/' 
|| CAST(MONTH(MYDATE) AS VARCHAR(2)) || '/' 
|| RIGHT('00' || CAST(DAY(MYDATE) AS VARCHAR(2)), 2) FROM MYCALENDAR 

是否還有更好的,更簡潔的方式來做到這一點?

ps:與區域設置的挑戰不是一個選項。

+0

有爲什麼你格式化日期(即,有人存儲字符串字段)一個_database_原因是什麼?因爲用於顯示的格式是_view_代碼的工作,所以**不能**數據庫。 – 2012-01-31 16:50:49

回答

8

按照IBM documentation下面應該工作:

SELECT VARCHAR_FORMAT(MYDATE, 'YYYY/MM/DD') FROM MYCALENDAR; 
+0

SQL0440N未找到具有兼容參數的名稱爲「FORMAT」類型爲「FUNCTION」的授權例程。 SQLSTATE = 42884 [DB2客戶機9.7.1的命令行處理器] – BlakBat 2012-01-31 16:34:09

+0

Hmpf,讓我看看,也許我很困惑 – 2012-01-31 16:35:15

+1

我發現錯誤。據IBM稱,該例程被稱爲「VARCHAR_FORMAT」。我更新了我的答案。 – 2012-01-31 16:38:19