sql >> Database teknologi >  >> RDS >> Oracle

2 måder at få dagen fra en date i Oracle

Nedenfor er to funktioner, der kan bruges til at returnere dagen fra en dato i Oracle Database.

EXTRACT() Funktion

EXTRACT(datetime) funktion bruges til at udtrække forskellige datetime dele fra en datetime værdi. Dette inkluderer dagen.

Her er et eksempel:

SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Resultat:

25

Det er DAY søgeord, der udtrækker dagsdelen fra datoen. Vi kan få andre datodele ved at ændre det til det relevante søgeord. For eksempel YEAR , MONTH , HOUR , MINUTE osv.

Vi kan også bruge funktionen med andre datetime-værdier, såsom TIMESTAMP osv.

TO_CHAR(datetime) Funktion

Vi kan også bruge TO_CHAR(datetime) fungere som en alternativ metode til at få dagen fra en dato.

Denne funktion accepterer datetime eller intervalværdien som sit første argument og en formatmodel som sit andet argument. Funktionen konverterer derefter værdien til en datatype VARCHAR2 i det angivne format.

Formatmodellen angiver det format, som dato/intervalværdien skal returneres for. Formatmodellen består af et eller flere formatelementer. Dette gør os i stand til omhyggeligt at udforme resultaterne, så de afspejler vores ønskede format.

Hvis vi kun ønsker at returnere dagen, kan vi bruge et af formatelementerne til at udtrække dagen.

Dag i måneden

For at få dagen i måneden (mellem 1-31), skal du bruge DD formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;

Resultat:

03

Fulddagsnavn

Brug DAY for at få hele dagens navn :

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Resultat:

SATURDAY

Navn på kort dag

Brug DY for at få det forkortede dagnavn :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Resultat:

SAT

Årets dag

For at få årets dag (mellem 1-366), skal du bruge DDD formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;

Resultat:

276

Ugedag

Brug D for at få ugedagen (mellem 1-7). formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Resultat:

6

Dette formatelement afhænger af sessionens NLS-territorium. Værdien af ​​mit systems NLS_TERRITORY parameteren er AUSTRALIA , og derfor anses lørdag for at være den sjette dag i ugen.

Her er, hvad der sker, hvis jeg ændrer værdien af ​​min NLS_TERRITORY parameter til AMERICA og kør den samme forespørgsel igen:

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Resultat:

7

Denne gang anses lørdag for at være den syvende dag i ugen.


  1. MySQL – Vent i sekunder med SELECT SLEEP()

  2. Hvordan konverterer jeg et interval til et antal timer med postgres?

  3. SÆT SQLBLANKLINES:Sådan tillades tomme linjer i SQLcl &SQL*Plus

  4. Flerrækket indsats med pg-løfte