将DateTime转换为nvarchar,只是月份和年份

时间:2009-10-01 12:30:25

标签: sql-server sql-server-2005 tsql

如何将日期时间值转换为nvarchar,并希望将其格式化为“月,年”e-g 2009年10月1日的值应转换为“2009年10月”

5 个答案:

答案 0 :(得分:5)

使用它:

select CONVERT(nvarchar(50),   DATENAME(m, getdate()) 
                               + ', ' 
                               + DATENAME(yyyy, getdate())
              )

输出:

--------------------------------------------------
October, 2009

(1 row(s) affected)

答案 1 :(得分:1)

试试这个

DECLARE @DateTime DATETIME

SET @DateTime = '01 Oct 2009'

SELECT @DateTime

SELECT DATENAME(mm, @DateTime) + ', ' + CAST(DATEPART(yy, @DateTime) AS VARCHAR(4))

答案 2 :(得分:0)

一种方法是使用datename以名称格式提取所需的部分,所以:

选择Convert(nvarchar,datename(m,getdate()))+ N','+ Convert(nvarchar,datename) (YY,GETDATE()))

将getdate()替换为日期变量/字段。

答案 3 :(得分:0)

DateName函数将提供您需要的格式:

DATENAME(m, date) + ', ' + DATENAME(yyyy, date)

转换为特定大小的nvarchar可以通过强制转换函数完成:

CAST(value AS nvarchar[30])

答案 4 :(得分:0)

尝试以下查询:

Select case  Convert(int, day(getdate())) when 1 then '1st' when 2 then '2nd'
 when 3 then '3rd' else Convert(varchar, day(getdate()))+'th' end +' '+ Convert(varchar, Datename(m,getdate()))+' ' +Convert(varchar, Datename(yy,getdate()))  as Date

您可以将 getdate()替换为任何其他日期。

请检查是否有帮助。