Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

przelicz datę na hiszpański w sql

Może to kłopotliwe, ale nie wiem, jak to zrobić w prostszy sposób.

Najpierw utwórz funkcję. Ta funkcja będzie korzystać z systemu widoku systemu .syslanguages aby uzyskać poprawną nazwę miesiąca w języku hiszpańskim. Parametry to poprawna data i język (alias w widoku 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

Następnie wywołaj funkcję w dowolnym miejscu:

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

Wynik:

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

Pobrane z Pobierz miesiąc dla konkretnego języka Nazwa z SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z alertów i operatorów w SQL Server

  2. Jak wstawić ciąg do innego ciągu w SQL Server za pomocą STUFF()

  3. SQL - INSERT z Scope_Identity() - pobieranie identyfikatora rekordu

  4. Podsumuj według tygodnia, nawet dla pustych wierszy

  5. Nieoczekiwane wyniki CTE