我正在使用SQL Server 2014,我需要在我的SQL查询中添加一行,将一个名为StayDate的列转换为" MMM YYYY"格式。
StayDate列格式为datetime
(例如:2016-06-01 00:00:00.000)
基本上,我需要输出为" 2016年7月" (来自上面的例子)。
我尝试使用以下代码:
Format (StayDate, "MMM DD YYYY")
我转换为:Format (StayDate, "MMM YYYY")
但我最终得到以下结果:Jul YYYY
我非常喜欢上面代码的简单性。是否有使用Format
语法的解决方法?
答案 0 :(得分:2)
format
函数采用.NET格式字符串,因此四位数年份部分必须为小写,如下所示:
Format(StayDate, "MMM yyyy")
(参考:https://msdn.microsoft.com/de-de/library/hh213505(v=sql.120).aspx)
答案 1 :(得分:0)
试试这个
DECLARE @SYSDATE DATETIME = '2016-06-01 00:00:00.000'
SELECT RIGHT(CONVERT(VARCHAR(11), @SYSDATE, 106) ,8)
--OR
SELECT LEFT(DATENAME(MONTH, @SYSDATE), 3) + ' ' + DATENAME(YEAR, @SYSDATE)
答案 2 :(得分:0)
您也可以尝试以下查询来实现相同的
SELECT DATENAME(MONTH, GETDATE()) + DATENAME(YEAR, GETDATE())
这将返回May2016
介于两者之间的空间
SELECT DATENAME(MONTH, GETDATE()) +' ' + DATENAME(YEAR, GETDATE())
结果:May 2016
答案 3 :(得分:0)
使用以下查询将返回您的预期结果:
extendedEdges