sql >> Database >  >> RDS >> Oracle

2 manieren om de dag uit een datum te halen in Oracle

Hieronder staan ​​twee functies die kunnen worden gebruikt om de dag te retourneren vanaf een datum in Oracle Database.

De EXTRACT() Functie

De EXTRACT(datetime) functie wordt gebruikt voor het extraheren van verschillende datetime-delen uit een datetime-waarde. Dit omvat de dag.

Hier is een voorbeeld:

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

Resultaat:

25

Het is de DAY trefwoord dat het dagdeel uit de datum haalt. We kunnen andere datumdelen krijgen door deze te wijzigen in het relevante trefwoord. Bijvoorbeeld YEAR , MONTH , HOUR , MINUTE , enz.

We kunnen de functie ook gebruiken met andere datetime-waarden, zoals TIMESTAMP , enz.

De TO_CHAR(datetime) Functie

We kunnen ook de TO_CHAR(datetime) gebruiken functioneren als een alternatieve methode om de dag uit een datum te halen.

Deze functie accepteert de datetime- of intervalwaarde als het eerste argument en een formaatmodel als het tweede argument. De functie converteert vervolgens de waarde naar een gegevenstype van VARCHAR2 in het gespecificeerde formaat.

Het formaatmodel specificeert het formaat waarvoor de datetime/intervalwaarde moet worden geretourneerd. Het formaatmodel bestaat uit een of meer formaatelementen. Dit stelt ons in staat om de resultaten zorgvuldig te maken om ons gewenste formaat weer te geven.

Als we alleen de dag willen retourneren, kunnen we een van de formaatelementen gebruiken om de dag te extraheren.

Dag van de maand

Gebruik de DD . om de dag van de maand te krijgen (tussen 1-31). formaatelement:

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

Resultaat:

03

Naam volledige dag

Gebruik DAY . om de volledige dagnaam te krijgen :

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

Resultaat:

SATURDAY

Korte dagnaam

Gebruik DY . om de afgekorte dagnaam te krijgen :

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

Resultaat:

SAT

Dag van het jaar

Gebruik de DDD . om de dag van het jaar te krijgen (tussen 1-366) formaatelement:

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

Resultaat:

276

Dag van de week

Gebruik de D . om de dag van de week te krijgen (tussen 1-7). formaatelement:

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

Resultaat:

6

Dit formaatelement is afhankelijk van het NLS-gebied van de sessie. De waarde van de NLS_TERRITORY van mijn systeem parameter is AUSTRALIA , en daarom wordt zaterdag beschouwd als de zesde dag van de week.

Dit gebeurt er als ik de waarde van mijn NLS_TERRITORY wijzig parameter naar AMERICA en voer dezelfde query opnieuw uit:

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

Resultaat:

7

Deze keer wordt zaterdag beschouwd als de zevende dag van de week.


  1. UPDATEs voor statistieken

  2. ORA-00936:ontbrekende uitdrukking orakel

  3. Hoe u de op één na grootste of de op twee na grootste invoer van een tafel kunt krijgen?

  4. MySQL-replicatie met ProxySQL op WHM/cPanel-servers:deel twee