select * from nls_session_parameters where parameter in ('NLS_DATE_FORMAT','NLS_DATE_LANGUAGE');Un risultato per tale query può essere ad esempio il seguente:
PARAMETER VALUE --------------- -------- NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE ITALIANSi noti che:
alter session set NLS_DATE_FORMAT='DD-MONTH-YY';testo di accompagnamento testo di accompagnamento
alter session set NLS_LANGUAGE=FRENCH;
select to_date('05/16/13', 'MM/DD/YY') as dataesempio1, to_date('16-Mag-13', 'DD-Mon-YY HH:MI:SS') as dataesempio2, to_date('Maggio.16.2013', 'Month.DD.YYYY HH:MI:SS') as dataesempio3 from dual;Si noti che:
select to_date('05/16/13') as dataesempio1, to_date('16-Mag-13') as dataesempio2, to_date('Maggio.16.2013') as dataesempio3 from dual;In questo caso l'unico formato che funziona é quello del secondo esempio, perché tale formato corrisponde a quello attualmente in uso, come detto al punto 1)
select to_char(sysdate, 'DD-MONTH-YEAR') as formatoesempio, to_char(sysdate, 'DAY DD/MM/YYYY') as formatoesempio from dual;4) che giorno é oggi?
select sysdate from dual;Si noti che la visualizzazione del risultato dipende dal formato e dalla lingua, che si sono ricavati al punto 1.
select to_char(sysdate, 'DAY HH24:MM:SS') from dual;4c) quanti giorni sono passati dall'inizio dell'anno ad oggi?
select to_char(sysdate, 'DDD') as giorni_da_inizio_anno from dual;5) che cosa indica il formato RR o RRRR?
select TO_CHAR(TO_DATE('17/04/93','DD/MM/RR'),'DD/MM/YYYY') as data_20_secolo from dual;
select TO_CHAR(TO_DATE('17/04/13','DD/MM/RR'),'DD/MM/YYYY') as data_21_secolo from dual;
select TO_CHAR(TO_DATE('17/04/2313','DD/MM/RR'),'DD/MM/YYYY') as data from dual;6) come si fa la differenza tra due date?
select sysdate - to_date('2014-01-14' ,'YYYY-MM-DD') as giorni_passati from dual;Il risultato é un numero FLOAT che é il numero di giorni richiesto. Il risultato contiene una frazione perché nella data espressa da sysdate, viene considerata anche la componente relativa al tempo (ore, minuti, secondi).
select to_date('2014-01-14' ,'YYYY-MM-DD') - to_date('2014-01-03' ,'YYYY-MM-DD') as risultato1, to_date('2014-01-14 00:00:00' ,'YYYY-MM-DD HH24:MI:SS') - to_date('2014-01-03 00:00:00' ,'YYYY-MM-DD HH24:MI:SS') as risultato2, to_date('2014-01-14 00:00:01' ,'YYYY-MM-DD HH24:MI:SS') - to_date('2014-01-03 00:00:00' ,'YYYY-MM-DD HH24:MI:SS') as risultato3 from dual;6c) quanti secondi sono passati dallo scorso 14 gennaio 2014 ad oggi?
select (sysdate - to_date('2014-01-14' ,'YYYY-MM-DD')) * 86400 as secondi_passati from dual;Si noti che la precedente, é difatto la medesima select del punto 6) con l'aggiunta del fattore 86400, che indica il numero di secondi in un giorno.
select sysdate + 4 as tra_4_giorni from dual; select to_date('2014-01-14' ,'YYYY-MM-DD') + 4 from dual;7b) come si fa a togliere 3 giorni ad una data?
select sysdate - 3 as tre_giorni_fa from dual;8) come si fa ad aggiungere 6 mesi ad una data?
select ADD_MONTHS(sysdate, 6) tra_6_mesi from dual;8b) come si fa a togliere 6 mesi ad una data?
select ADD_MONTHS(sysdate, -6) sei_mesi_fa from dual;testo di accompagnamento testo di accompagnamento
select sysdate + 9 * 7 as tra_9_settimane from dual;testo di accompagnamento testo di accompagnamento
select ADD_MONTHS(sysdate, 10 * 12) tra_10_anni from dual;11) come si fa il confronto tra due date?
select 1 from dual where to_date('2014-01-14' ,'YYYY-MM-DD') > to_date('11-GEN-2014' ,'DD-MON-YYYY'); select count(*) from employees where hire_date <= to_date('16.Maggio.2003', 'DD.Month.YYYY');12) come si fa ad effettuare la ricerca con la data in un intervallo?
SELECT * FROM employees WHERE hire_date BETWEEN TO_DATE ('2003/01/01', 'yyyy/mm/dd') AND TO_DATE ('2003/12/31', 'yyyy/mm/dd');Si noti che nella suddetta select sono compresi gli estremi, e di fatto é equivalente alla seguente:
SELECT * FROM employees WHERE hire_date >= TO_DATE('2003/01/01', 'yyyy/mm/dd') AND hire_date <= TO_DATE('2003/12/31','yyyy/mm/dd');13) come si fa ad estrarre da una data, soltanto il giorno/mese/anno ?
SELECT EXTRACT(day FROM to_date('25.04.2012','DD.MM.YYYY')) "Giorno", EXTRACT(month FROM to_date('25.04.2012','DD.MM.YYYY')) "Mese", EXTRACT(year FROM to_date('25.04.2012','DD.MM.YYYY')) "Anno" from dual;14) come si ricava l'ultimo giorno del mese?
SELECT sysdate, LAST_DAY(sysdate) "Ultimo", LAST_DAY(sysdate) - sysdate "Giorni rimasti" FROM DUAL;15) per la data fornita, come si ricava il primo giorno della settimana/mese/anno ?
SELECT TRUNC(TO_DATE('16-GEN-14'), 'DAY'), TRUNC(TO_DATE('16-GEN-14'), 'MONTH'), TRUNC(TO_DATE('16-GEN-14'), 'YEAR') FROM dual;16) come si fa ad ottenere l'ultimo giorno dell'anno?
select ADD_MONTHS(trunc(sysdate,'YEAR'),12)-1 as ultimo_giorno from dual;
Monday, 25 November 2013
Thanks to everyone who helped us to discover and solve any problems, JiFile is no longer in Beta. Download ...
Monday, 25 November 2013
Friday, 08 November 2013
Tuesday, 01 October 2013
Monday, 26 August 2013
Friday, 28 June 2013
Friday, 31 May 2013
Monday, 13 May 2013