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

Konwertuj nazwę miesiąca na numer miesiąca w programie SQL Server (T-SQL)

W SQL Server możesz użyć MONTH() funkcja konwersji nazwy miesiąca na odpowiadającą mu liczbę.

Przykład

Oto przykład konwersji nazwy miesiąca na numer miesiąca.

SELECT MONTH('September' + '1,1');

Wynik:

9

To, co tutaj robię, to w zasadzie sfabrykowanie „daty” (obejmującej mój określony miesiąc), aby SQL Server nie zgłaszał błędu podczas korzystania z MONTH() funkcja bez ważnej daty.

Ta funkcja akceptuje każde wyrażenie, które można rozwiązać na czas , data , smalldatetime , data i godzina , datagodzina2 lub przesunięcie daty i godziny wartość. Może to być wyrażenie, wyrażenie kolumnowe, zmienna zdefiniowana przez użytkownika lub literał ciągu.

Więcej „podobnych do daty”

Możesz również podać bardziej „przypominający randkę” argument, wykonując coś takiego:

SELECT MONTH('September' + ' 01, 1900');

Wynik:

9

Bieżący dzień i rok

Lub jeśli wolisz używać bieżącego dnia i roku, możesz zrobić coś takiego:

SELECT MONTH('September' + FORMAT(GETDATE(), 'd,y'));

Wynik:

9

Dla jasności, chyba że określony miesiąc jest taki sam jak bieżący miesiąc, otrzymasz inną datę niż bieżąca.

Oto przykład ilustrujący, co mam na myśli:

SELECT 
  FORMAT(GETDATE(), 'MMMM d, yyyy') AS [Today],
  'September' + FORMAT(GETDATE(), ' d, yyyy') AS [Modified],
  MONTH('September' + FORMAT(GETDATE(), ' d, yyyy')) AS [Month Number];

Wynik:

 +----------------+--------------------+----------------+
 | Today          | Modified           | Month Number   |
 |----------------+--------------------+----------------|
 | March 22, 2020 | September 22, 2020 | 9              |
 +----------------+--------------------+----------------+ 

To zapytanie zostało uruchomione 22 marca 2020 r., ale zmodyfikowana data to 22 września 2020 r.

Niezależnie od tego prawidłowy numer miesiąca jest zwracany, gdy używamy MONTH() .


  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 podzielić wartości z jednej kolumny na wartości z wielu kolumn?

  2. Zainstaluj SQL Server 2016

  3. Jak zmienić ustawienia konfiguracji poczty bazy danych w programie SQL Server (T-SQL)

  4. Czy można używać wyszukiwania pełnotekstowego (FTS) z LINQ?

  5. Jak korzystać z GOTO w SQL Server