如何在SQL Server中显示月份名和年份

时间:2015-10-16 15:05:24

标签: sql sql-server

如果日期为10/16/2015,则列为datetime类型' 2015-10-16 10:09:19.443'

如何仅将月份和年份显示为' OCT-15'在SQL Server中?

4 个答案:

答案 0 :(得分: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 :(得分:1)

如果您尝试运行快速广告查询以查看格式为MMM-YY的结果,但无法访问FORMAT function(即使用MS SQL Server 2008或更早版本),则可以执行以下操作:

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

但是,如果您正在编写应用程序,并且希望以此特定格式向最终用户显示日期,则应使用宿主语言进行格式化。

答案 2 :(得分:1)

这里是一种非常简单(快速)的转换方式DATETIME,虽然我同意其他评论和答案,参数应该以规范的日期时间格式保存,这样任何日期处理可跨语言移植:

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

答案 3 :(得分:-2)

查看SQLServer中的DatePart方法并在postgreSQL中解压缩。