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

DAY() Przykłady w SQL Server (T-SQL)

W SQL Server możesz użyć DAY() funkcja zwracająca „dzień” część daty. Ta funkcja zwraca liczbę całkowitą reprezentującą dzień miesiąca (nie dzień tygodnia).

Poniżej znajdują się przykłady korzystania z tej funkcji.

Składnia

Składnia wygląda tak:

DAY ( date )

Gdzie date to wyrażenie, które rozwiązuje jeden z następujących typów danych:

  • data
  • data i godzina
  • przesunięcie daty i godziny
  • datagodzina2
  • smalldatetime
  • czas

Może to być wyrażenie kolumnowe, wyrażenie, literał ciągu lub zmienna zdefiniowana przez użytkownika.

Przykład

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

SELECT 
   SYSDATETIME() AS 'Date',
   DAY(SYSDATETIME()) AS 'Day';

Wynik:

+-----------------------------+-------+
| Date                        | Day   |
|-----------------------------+-------|
| 2018-06-18 00:20:22.1284540 | 18    |
+-----------------------------+-------+

Więc DAY() funkcja mogła wyodrębnić dzień z datetime2 wartość (która została zwrócona przez SYSDATETIME() funkcja).

Data podana jako literał ciągu

Oto przykład, w którym data jest podana jako literał ciągu.

SELECT DAY('2019-01-07') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

A oto przykład, w którym data jest podana w innym formacie:

SELECT DAY('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Jednak zazwyczaj najlepiej jest unikać używania dat w takich formatach. Jeśli musisz to zrobić, musisz pamiętać o ustawieniach języka i/lub ustawieniach formatu daty bieżącej sesji.

Ustawienia języka

Wynik poprzedniego przykładu będzie zależał od ustawień języka i/lub ustawień formatu daty w bieżącej sesji.

Kiedy ustawiamy język, format daty jest domyślnie ustawiany w tym samym czasie.

Oto, co się dzieje, gdy dostarczamy ten sam argument daty w dwóch różnych środowiskach językowych.

Brytyjski

SET LANGUAGE British;
SELECT DAY('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

us_angielski

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Ustawienia formatu daty

Ustawienia formatu daty mogą zastąpić ustawienia języka, więc musisz również pamiętać o tym ustawieniu. Na przykład możemy używać języka us_angielski dla naszego języka (który ma domyślny format daty mdy ), ale możemy zmienić format daty na dmy .

Oto przykład:

us_English – Domyślny format daty

Tutaj ustawiamy język na us_English , który pośrednio ustawia format daty na myy .

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_English – Zastąp format daty

Tutaj ustawiamy język na us_English (co pośrednio ustawia format daty), ale potem jawnie ustawiamy format daty na dmy . Zastępuje to format daty, który został domyślnie ustawiony podczas ustawiania języka.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT DAY('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Zwróć nazwę dnia

Jeśli chcesz zwrócić nazwę dnia (w przeciwieństwie do numeru dnia), zobacz 3 sposoby uzyskania nazwy dnia z daty w SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC SQLServerException:Ten sterownik nie jest skonfigurowany do zintegrowanego uwierzytelniania.

  2. Kopia zapasowa SQL Server 2017 -2

  3. Bootstrapowanie SQL Express z WiX?

  4. Co to jest @@MAX_PRECISION w programie SQL Server?

  5. Wprowadzenie do OPENJSON z przykładami (SQL Server)