Di seguito sono elencate due funzioni che possono essere utilizzate per restituire il giorno da una data in Oracle Database.
Il EXTRACT()
Funzione
Il EXTRACT(datetime)
La funzione viene utilizzata per estrarre varie parti datetime da un valore datetime. Questo include il giorno.
Ecco un esempio:
SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;
Risultato:
25
È il DAY
parola chiave che estrae la parte del giorno dalla data. Possiamo ottenere altre parti della data modificandola con la parola chiave pertinente. Ad esempio, YEAR
, MONTH
, HOUR
, MINUTE
, ecc.
Possiamo anche usare la funzione con altri valori datetime, come TIMESTAMP
, ecc.
Il TO_CHAR(datetime)
Funzione
Possiamo anche usare il TO_CHAR(datetime)
funziona come metodo alternativo per ottenere il giorno da una data.
Questa funzione accetta il valore datetime o interval come primo argomento e un modello di formato come secondo argomento. La funzione converte quindi il valore in un tipo di dati di VARCHAR2
nel formato specificato.
Il modello di formato specifica il formato per il quale restituire il valore datetime/intervallo. Il modello di formato è costituito da uno o più elementi di formato. Questo ci consente di elaborare con cura i risultati per riflettere il formato desiderato.
Se vogliamo solo restituire il giorno, possiamo utilizzare uno degli elementi di formato per estrarre il giorno.
Giorno del mese
Per ottenere il giorno del mese (tra 1 e 31), usa il DD
elemento di formato:
SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;
Risultato:
03
Nome per l'intera giornata
Per ottenere il nome completo del giorno, usa DAY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Risultato:
SATURDAY
Nome breve del giorno
Per ottenere il nome abbreviato del giorno, usa DY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Risultato:
SAT
Giorno dell'anno
Per ottenere il giorno dell'anno (tra 1 e 366), usa il DDD
elemento di formato:
SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;
Risultato:
276
Giorno della settimana
Per ottenere il giorno della settimana (tra 1 e 7), usa il D
elemento di formato:
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
Risultato:
6
Questo elemento di formato dipende dal territorio NLS della sessione. Il valore di il NLS_TERRITORY
del mio sistema il parametro è AUSTRALIA
, e quindi sabato è considerato il sesto giorno della settimana.
Ecco cosa succede se cambio il valore del mio NLS_TERRITORY
parametro su AMERICA
ed esegui di nuovo la stessa query:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
Risultato:
7
Questa volta il sabato è considerato il settimo giorno della settimana.