2015-10-16 29 views
-2

如果日期是10/16/2015,列datetime型「二零一五年十月十六日10:09:19.443」如何顯示在SQL Server MONTHNAME和年

如何只月份和年份顯示爲「OCT-15 '在SQL Server中?

+4

不要在SQL中這樣做,在UI層執行此操作。 SQL在日期格式化方面並不好,也不應該(在大多數情況下) – DavidG

+0

什麼版本的SQL Server? – Siyual

+0

我知道,但我沒有在UI中使用,我需要使用某處作爲參數 – user1030181

回答

5

如果你正在使用SQL Server 2012或更高版本,可以使用Format()功能:

Declare @Date DateTime = '10/16/2015' 
Select Format(@Date, N'MMM-yy') 

結果:

Oct-15 

編輯 - 在@ lad2025的評論來看,如果必要的話,你可能需要還要添加en-US區域設置:

Declare @Date DateTime = '10/16/2015' 
Select Format(@Date, N'MMM-yy', 'en-US') 
+1

爲了確保語言環境https://data.stackexchange.com/stackoverflow/query/376711,例如當用戶有不同時,我會加上'en-US'。 – lad2025

+1

@ lad2025啊,這是一個很好的觀點 - 我沒有考慮過這個問題。 – Siyual

1

如果喲您正嘗試運行快速附加查詢以查看格式爲MMM-YY的結果,但無法訪問FORMAT function(即,使用MS SQL Server 2008或更早版本),你可以這樣做:

SELECT replace(right(convert(varchar(9), date_column, 6), 6), ' ', '-') 
FROM my_table 

但是,如果你正在編寫一個應用程序,並想提出的日期到最終用戶在這種特定的格式,你應該做的格式在主機語言中。

-2

查看SQLServer中的DatePart方法並在postgreSQL中解壓縮。

+0

這是如何回答這個問題的? –

+0

他可以使用這些方法的組合來提取相關部分,然後根據需要組合它們。 –

+0

有什麼方法?你的回答更多的是評論,並沒有引用或備份你說的任何東西。 PostgreSQL是一個對象數據庫管理系統,與問題無關。 –

1

這是一個非常簡單(快速)的方式來轉換從DATETIME,雖然我同意其他意見和答案,一個參數應該保持在規範日期時間格式,這樣任何日期處理是可移植的跨語言:

SELECT RIGHT(REPLACE(CONVERT(VARCHAR(9), CAST('2015-10-16 10:09:19.443' AS DATETIME), 6), ' ', '-'),6) AS [Mon-YY]