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.