如果日期为10/16/2015
,则列为datetime
类型' 2015-10-16 10:09:19.443'
如何仅将月份和年份显示为' OCT-15'在SQL Server中?
答案 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中解压缩。