sql >> Databáze >  >> RDS >> Sqlserver

Příklady DAY() v SQL Server (T-SQL)

Na serveru SQL Server můžete použít DAY() funkce pro vrácení části data „den“. Tato funkce vrací celé číslo, které představuje den v měsíci (nikoli den v týdnu).

Níže jsou uvedeny příklady použití této funkce.

Syntaxe

Syntaxe vypadá takto:

DAY ( date )

Kde date je výraz, který rozlišuje jeden z následujících datových typů:

  • datum
  • datum a čas
  • datetimeoffset
  • datetime2
  • smalldatetime
  • čas

Může to být sloupcový výraz, výraz, řetězcový literál nebo uživatelem definovaná proměnná.

Příklad

Zde je základní příklad toho, jak to funguje:

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

Výsledek:

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

Takže DAY() funkce byla schopna extrahovat den z datetime2 hodnota (která byla vrácena funkcí SYSDATETIME() funkce).

Datum poskytnuté jako řetězcový literál

Zde je příklad, kdy je datum uvedeno jako řetězcový literál.

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

Výsledek:

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

A zde je příklad, kdy je datum uvedeno v jiném formátu:

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

Výsledek:

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

Obvykle je však lepší nepoužívat data v takových formátech. Pokud to musíte udělat, musíte mít na paměti nastavení jazyka a/nebo nastavení formátu data aktuální relace.

Nastavení jazyka

Výstup z předchozího příkladu bude záviset na nastavení jazyka a/nebo nastavení formátu data aktuální relace.

Když nastavíme jazyk, zároveň se implicitně nastaví formát data.

Zde je to, co se stane, když poskytneme stejný argument data ve dvou různých jazykových prostředích.

Britové

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

Výsledek:

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

us_Angličtina

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

Výsledek:

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

Nastavení formátu data

Nastavení formátu data může přepsat nastavení jazyka, takže si také musíte být vědomi tohoto nastavení. Mohli bychom například používat us_English pro náš jazyk (který má výchozí formát data mdy ), ale mohli bychom přepsat formát data na dmy .

Zde je příklad:

us_English – Výchozí formát data

Zde nastavíme jazyk na us_English , která implicitně nastavuje formát data na myy .

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

Výsledek:

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

us_English – Přepsat formát data

Zde nastavíme jazyk na us_English (což implicitně nastavuje formát data), ale pak explicitně nastavíme formát data na dmy . Toto přepíše formát data, který byl implicitně nastaven při nastavování jazyka.

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

Výsledek:

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

Vraťte název dne

Pokud potřebujete vrátit název dne (na rozdíl od čísla dne), přečtěte si 3 způsoby, jak získat název dne z data na serveru SQL.


  1. SQL Server:Všechna velká a malá písmena nastavte na správná malá a velká písmena

  2. Dosažení převzetí služeb při selhání a zpětného selhání MySQL na platformě Google Cloud Platform (GCP)

  3. Způsoby, jak vědět, jak se vypořádat s korupcí databáze na serveru SQL

  4. Jak SLEEP() funguje v MariaDB