如何将sql 05/04/207中的日期转换为2017年5月4日

如何将sql 05/04/207中的日期转换为2017年5月4日,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在使用 转换(nvarchar,日期,106) 它给出了2017年5月4日 但我需要2017年5月4日的2017年5月4日 2017年5月11日的2017年5月11日如果CONVERT(nvarchar,Date,106)给出2017年5月4日,如果要删除第一个字符,如果它是0,则可以使用大小写表达式 查询 SELECT CASE WHEN LEFT(CONVERT(nvarchar, Date, 106), 1) = '0' THEN RIGHT(CONVERT(nvarchar, Da

我正在使用

转换(nvarchar,日期,106)

它给出了2017年5月4日
但我需要2017年5月4日的2017年5月4日
2017年5月11日的2017年5月11日

如果
CONVERT(nvarchar,Date,106)
给出
2017年5月4日
,如果要删除第一个字符,如果它是
0
,则可以使用
大小写
表达式

查询

SELECT CASE WHEN LEFT(CONVERT(nvarchar, Date, 106), 1) = '0' 
THEN RIGHT(CONVERT(nvarchar, Date, 106), LEN(CONVERT(nvarchar, Date, 106)) - 1)
ELSE CONVERT(nvarchar, Date, 106) END
FROM your_table_name;

您可以检查月份中的日期<10,然后删除第一个字符

SELECT  REPLACE(CASE 
            WHEN datepart(day,dateColumn) < 10 
            THEN STUFF(convert(nvarchar(20), dateColumn, 106), 1,1,'')
            ELSE convert(nvarchar(20), dateColumn, 106)
      END, ' ', '') AS dateText 
FROM yourTable
选择替换(案例)
日期部分(日期、日期列)<10时
然后填充(convert(nvarchar(20),dateColumn,106),1,1',)
ELSE转换(nvarchar(20),dateColumn,106)
结束,'',''作为日期文本
从你的桌子上

是否还有其他替代方案this@Raj:您正在使用哪个
RDBMS
?2008 sql server