2016-06-18 77 views
-1

我的數據庫中有以下格式的日期。SQL中的日期轉換

10/16 - mm/yy

我需要將其轉換爲:

October/16

這可能嗎?

如果不可能,請告訴我爲什麼。

+0

也許知道數據庫會幫助我們! –

+0

你使用了什麼[標籤:rdbms]? – Mureinik

+0

我是usig SQL Server 2014. – JiLaBaJi

回答

1

這不是日期,它缺少一天,這是存儲年/月的不好方法。應該有一個4位數的年份以避免混淆,並且應該首先列出年份以實現正確的排序,例如, '2016/10'或數字值201610

您可以先將其轉換爲一個日期,然後使用的格式DISPLY單月/年:

set dateformat myd; 
select format(cast(mystupidcolumn + '/1' as date), 'MMMM/yy') 

或者SUBSTR月份部分,並使用CASE。

0

當然可以,這取決於你使用什麼數據庫調用日期函數 如果列DATETIME格式

  • SQL服務器DATENAME(Month, GETDATE())
  • MySQL數據庫MONTHNAME(now())

否則 轉換它會在您選擇的數據庫或您的代碼邏輯 拆分值和查找月enum或假的DA TE被接受和完成日期格式像01/10/16

所以這樣做SELECT DATENAME(Month, datecolumn) + '/' + YEAR (datecolumn)

你也可以用它代替Year功能DATEPART(yy,datecolumn) 你與格式做的方式看起來就像 CONVERT(VARCHAR(11),GETDATE(),106) 但除外得到一個月JUN

+0

請參閱我的日期格式.. – JiLaBaJi

+0

我更新了答案希望這個幫助更多,注意不使用日期格式功能 –

+0

轉換日期和/或時間從字符串轉換失敗。我認爲這個日期格式的錯誤只有兩個部分。 – JiLaBaJi

0

的第3字符嘗試這種格式,

SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime))) 
0

您可以通過使用此代碼

select datename(month, YourColumnName) + '/' + right(YEAR(YourColumnName),2) 
FROM yourTableName 

簡單地改變yourColumnName與表列的名稱和yourTableName與表的名稱顯示日期。

+0

我得到這個轉換失敗時,從字符串錯誤轉換日期和/或時間.. – JiLaBaJi

+0

請注意我的日期格式.. – JiLaBaJi