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

5 sposobów na uzyskanie skróconej nazwy miesiąca z daty w SQL Server

Czasami podczas pracy z SQL Server (lub jakimkolwiek innym systemem DBMS) musisz zwrócić skróconą nazwę przez miesiąc. Mam tu na myśli trzyliterowy skrót miesiąca. Na przykład potrzebujesz „grudzień” zamiast „grudzień”.

Oto cztery sposoby wyodrębnienia skróconej nazwy miesiąca z daty w SQL Server.

Funkcja FORMAT()

FORMAT() funkcja jest dostępna od SQL Server 2012 i jest najbardziej zwięzłym sposobem zwracania miesiąca w postaci trzyliterowego skrótu.

Oto przykład tego, jak to działa:

DECLARE @date datetime2 = '2000-01-01';
SELECT FORMAT(@date, 'MMM') AS 'FORMAT';

Wynik:

FORMAT
------
Jan   

Pierwsza linia po prostu deklaruje zmienną i przypisuje jej datę. W drugim wierszu zwracamy skróconą nazwę miesiąca od daty.

Funkcje CAST() i DATENAME()

Ta opcja rzutuje datę jako CHAR(3) , odcinając w ten sposób wszystkie znaki następujące po pierwszych trzech.

Oto przykład:

DECLARE @date datetime2 = '2000-01-01';
SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';

Wynik:

CAST/DATENAME
-------------
Jan          

Funkcje LEFT() i DATENAME()

Ta opcja jest podobna do poprzedniej, z wyjątkiem tego, że używa LEFT() funkcja, aby pobrać 3 skrajne lewe znaki z daty.

Przykład:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';

Wynik:

LEFT/DATENAME
-------------
Jan          

Funkcje LEFT() i CONVERT()

Ta opcja konwertuje datę na varchar, a następnie pobiera pierwsze trzy znaki.

Przykład:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';

Wynik:

LEFT/CONVERT
------------
Jan         

W tym przykładzie 100 argument stylizuje datę w następujący sposób:pon dd rrrr hh:miAM (lub PM) . W naszym przypadku styl daty to 1 stycznia 2000 12:00 .

Od tego momentu wystarczy odciąć pierwsze trzy litery za pomocą LEFT() funkcja.

Funkcje LEFT() i MONTHNAME()

Ta opcja używa MONTHNAME() Funkcja skalarna ODBC zwracająca nazwę miesiąca. Podobnie jak w poprzednich dwóch przykładach, po prostu wyodrębniamy pierwsze trzy litery nazwy tego miesiąca.

Przykład:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';

Wynik:

LEFT/MONTHNAME
--------------
Jan               


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić „Wyrażenie ALTER TABLE SWITCH nie powiodło się” Msg 4982 (SQL Server)

  2. Importuj „xml” do serwera SQL

  3. Grupy dostępności programu SQL Server AlwaysOn:instalacja i konfiguracja, część 1

  4. Jaka jest najlepsza praktyka wstawiania rekordu, jeśli jeszcze nie istnieje?

  5. Jakie są różnice między przekształceniami Merge Join i Lookup w usługach SSIS?