Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

converti la data in spagnolo in sql

Forse è ingombrante, ma non vedo come farlo in un modo più semplice.

Innanzitutto, crea una funzione. Questa funzione utilizzerà sistema di visualizzazione .syslanguages per ottenere il nome corretto del mese in spagnolo. I parametri sono una data e una lingua valide (alias nella vista 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

Quindi chiama la funzione ovunque sia necessario:

SELECT CONVERT(VARCHAR(20), GETDATE(), 100) AS CurrentDate,
       dbo.fn_GetMonthName (GETDATE(), 'Spanish') AS [Mes-Month]

Risultato:

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

Tratto da Ottieni il mese specifico della lingua Nome da SQL