sql >> Database teknologi >  >> RDS >> Sqlserver

DAY() Eksempler i SQL Server (T-SQL)

I SQL Server kan du bruge DAY() funktion for at returnere "dag"-delen af ​​en dato. Denne funktion returnerer et heltal, der repræsenterer dagen i måneden (ikke ugedagen).

Nedenfor er eksempler på, hvordan du bruger denne funktion.

Syntaks

Syntaksen ser sådan ud:

DAY ( date )

Hvor date er et udtryk, der løses til en af ​​følgende datatyper:

  • dato
  • datotid
  • datotidsforskydning
  • datetime2
  • smalldatetime
  • tid

Dette kan være et kolonneudtryk, et udtryk, en streng-literal eller en brugerdefineret variabel.

Eksempel

Her er et grundlæggende eksempel på, hvordan det virker:

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

Resultat:

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

DAY() funktion var i stand til at udtrække dagen fra datetime2 værdi (som blev returneret af SYSDATETIME() funktion).

Dato angivet som en tekststreng

Her er et eksempel, hvor datoen er angivet som en bogstavelig streng.

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

Resultat:

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

Og her er et eksempel, hvor datoen er angivet i et andet format:

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

Resultat:

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

Det er dog normalt bedst at undgå at bruge datoer i sådanne formater. Hvis du skal gøre det, skal du være opmærksom på sprogindstillingerne og/eller datoformatindstillingerne for den aktuelle session.

Sprogindstillinger

Outputtet fra det forrige eksempel vil afhænge af sprogindstillingerne og/eller datoformatindstillingerne for den aktuelle session.

Når vi indstiller sproget, indstilles datoformatet implicit på samme tid.

Her er, hvad der sker, når vi leverer det samme datoargument i to forskellige sprogmiljøer.

britisk

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

Resultat:

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

us_engelsk

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

Resultat:

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

Indstillinger for datoformat

Indstillingerne for datoformat kan tilsidesætte sprogindstillingerne, så du skal også være opmærksom på denne indstilling. For eksempel kan vi bruge us_engelsk for vores sprog (som har et standard datoformat på mdy ), men vi kunne tilsidesætte datoformatet til at være dmy .

Her er et eksempel:

us_English – Standard datoformat

Her indstiller vi sproget til us_engelsk , som implicit sætter datoformatet til myy .

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

Resultat:

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

us_English – Tilsidesæt datoformat

Her indstiller vi sproget til us_engelsk (som implicit sætter datoformatet), men så sætter vi eksplicit datoformatet til dmy . Dette tilsidesætter det datoformat, der implicit blev indstillet, da vi indstillede sproget.

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

Resultat:

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

Returnér dagsnavnet

Hvis du har brug for at returnere dagnavnet (i modsætning til dagnummeret), se 3 måder at få dagnavnet på fra en dato i SQL Server.


  1. Udfordringer ved at skalere Moodle PostgreSQL-databasen

  2. Hvordan IFNULL() virker i MariaDB

  3. Ikke mere SPU

  4. Den bedste måde at makulere XML-data i SQL Server-databasekolonner