Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

convertir la date en espagnol en sql

C'est peut-être fastidieux, mais je ne vois pas comment le faire plus facilement.

Tout d'abord, créez une fonction. Cette fonction utilisera system view sys .syslanguages pour obtenir le nom correct du mois en espagnol. Les paramètres sont une date et une langue valides (alias sur la vue 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

Appelez ensuite la fonction partout où vous en avez besoin :

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

Résultat :

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

Tiré de Obtenir le mois spécifique à la langue Nom de SQL