sql >> データベース >  >> RDS >> Sqlserver

SQLで日付をスペイン語に変換する.

    面倒かもしれませんが、もっと簡単な方法がわかりません。

    まず、関数を作成します。この関数は、システム ビュー sys を利用します。 .syslanguages スペイン語で月の正しい名前を取得します。パラメータは有効な日付と言語 (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
    

    次に、必要な場所で関数を呼び出します:

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

    結果:

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

    Get Language specific Month から取得SQL からの名前



    1. 挿入と更新で同じ値を持つPostgreSQLアップサート(競合時)

    2. テーブル構造を新しいテーブルにコピーします

    3. データベースの展開の問題

    4. 左結合と左外側結合の違い