将datetime转换为显示完整月份

时间:2013-10-30 20:26:26

标签: sql sql-server date datetime type-conversion

我搜索过,似乎无法找到答案。我尝试过使用不同的风格,但没有一个能给我我想要的东西。

我正在尝试转换我计算过的日期时间。但是我需要它来显示整个月。

SELECT CONVERT(VARCHAR(25),DATEADD(dd, @codelife, getdate()),107)

以上行工作正常,除了它显示日期

Feb 27, 2014

我需要它来显示日期

February 27, 2014 etc.....

有什么建议吗?

4 个答案:

答案 0 :(得分:0)

我总是使用http://www.sql-server-helper.com/tips/date-formats.aspx作为参考

SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY] 

我会将您的日期声明为变量,并执行以下操作:

DECLARE @myDate DATETIME

SET @myDate = DateAdd(dd, @codelife, getdate());

SELECT DATENAME(MM, @myDate) + RIGHT(CONVERT(VARCHAR(12), @myDate, 107), 9) AS [Month DD, YYYY]

答案 1 :(得分:0)

Nathan的回答似乎很可靠,但如果您使用的是SQL Server 2012,则可以使用FORMAT()函数:

SELECT FORMAT(GETDATE(),'MMMM dd, yyyy')

或者在你的情况下:

SELECT FORMAT(DATEADD(dd, @codelife, getdate()),'MMMM dd, yyyy')

答案 2 :(得分:0)

您可能必须分两步完成。

DECLARE @codelife INT = 120

DECLARE @codedate DATETIME = (SELECT (DATEADD(D, @codelife, GETDATE())))

SELECT DATENAME(MM, @codedate) + SUBSTRING(CONVERT(VARCHAR(25), @codedate, 107), 4, 25)

答案 3 :(得分:0)

SELECT DATENAME(MONTH, GETDATE()) 
         + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]

OR无逗号的日期在日期和年份之间,您可以使用以下

SELECT DATENAME(MONTH, GETDATE()) + ' ' + CAST(DAY(GETDATE()) AS VARCHAR(2))
           + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) AS [Month DD YYYY]

我几天前回答了同样的问题sql server Get the FULL month name from a date