Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

converter data para espanhol em sql


Talvez seja complicado, mas não vejo como fazer isso de uma maneira mais fácil.

Primeiro, crie uma função. Esta função fará uso de system view sys .syslanguages para obter o nome correto do mês em espanhol. Os parâmetros são uma data e um idioma válidos (alias na exibição sys.syslanguage).
CREATE FUNCTION [dbo].[fn_GetMonthName] (
    @Date DATETIME,
    @Language NVARCHAR(100)
)
RETURNS NVARCHAR(400)
AS
BEGIN
    DECLARE @i INT, @m INT,@mlist NVARCHAR(1000)
    SET @m = MONTH(@Date)
    SET @mlist = (SELECT months FROM sys.syslanguages WHERE ALIAS = @language)
    SET @i = 1
    WHILE(@i < @m)
        BEGIN
           SET @mlist = REPLACE(@mlist, SUBSTRING(@mlist,1,CHARINDEX(',',@mlist)) ,'')
           SET @i = @i + 1
        END
    SET @mlist = (CASE CHARINDEX(',',@mlist) WHEN 0 THEN @mlist ELSE SUBSTRING(@mlist,0,CHARINDEX(',',@mlist) ) END )
    RETURN @mlist
END
GO

Em seguida, chame a função em qualquer lugar que você precise:
SELECT CONVERT(VARCHAR(20), GETDATE(), 100) AS CurrentDate,
       dbo.fn_GetMonthName (GETDATE(), 'Spanish') AS [Mes-Month]

Resultado:
      CurrentDate       Mes-Month
 May 24 2013 12:02AM      Mayo

Extraído de Obter o mês específico do idioma Nome do SQL