在SQL Server中转换

Ema*_*cho -2 sql sql-server

这是在SQL SERVER 2012环境中我有以下问题,我有一个带有类型字段的表datetime.

这个字段就像yyyy-mm-dd hh:mm:ss:msmsms- "2013-12-12 00:00:00.000"

我需要提取yyyy到一个字段.mm另一个和dd最后一个.

我试着这样做

SELECT        distinct CONVERT(CHAR (10), Data, 120) as Dia, 
 CONVERT(CHAR (7), Data, 120) as Mes, 
CONVERT(CHAR (4), Data, 120) as Ano
FROM            Vendas
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

Day 12-12-2013
Month 12-2013
Year 2013
Run Code Online (Sandbox Code Playgroud)

这一年是正确的,但我找不到一种方法来切割日和月的正确部分.

有人可以帮帮我吗?

Aar*_*and 5

SELECT YEAR(Data), MONTH(Data), DAY(Data) FROM dbo.Vendas;
Run Code Online (Sandbox Code Playgroud)

要么

SELECT DATEPART(YEAR, Data), DATEPART(MONTH, Data), DATEPART(DAY, Data)
  FROM dbo.Vendas;
Run Code Online (Sandbox Code Playgroud)

SQLFiddle

  • @Emanuel嗯,你需要提供更多信息.你可以从"不工作"的意思开始. (4认同)