Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Time Date formatting
What I am trying to do is just take a date formatted out to the hour and
minute and subtract it from another date formatted out to the hour and
minute. Most of the dates I deal with are less than one day and I need to
know the difference in times between them. Here is my output:
SQL> ed
Wrote file afiedt.buf
1 create table date_table
2 (date1 date,
3* date2 date)
SQL> /
Table created.
SQL> ed
Wrote file afiedt.buf
1 insert into date_table
2 (date1)
3* values (sysdate)
SQL> /
1 row created.
SQL> select to_char(date1,'DD-MON-YYYY HH24:MI:SS') 2 from date_table;
TO_CHAR(DATE1,'DD-MON-YYYYHH24:MI:SS')
SQL> commit;
Commit complete.
SQL> ed
Wrote file afiedt.buf
1 select to_char(date2,'DD-MON-YYYY
HH24:MI:SS')-to_char(date1,'DD-MON-YYYY HH24:MI:SS')
2* from date_table
SQL> /
ERROR:
ORA-01722: invalid number
no rows selected
SQL> ed
Wrote file afiedt.buf
1 select to_date(date2,'DD-MON-YYYY
HH24:MI:SS')-to_date(date1,'DD-MON-YYYY HH24:MI:SS')
2* from date_table
SQL> /
ERROR:
ORA-01840: input value not long enough for date format
no rows selected
SQL> select to_char(date1,'DD-MON-YYYY HH24:MI:SS') 2 from date_table;
TO_CHAR(DATE1,'DD-MON-YYYYHH24:MI:SS')
06-AUG-2000 12:46:13
SQL> ed
Wrote file afiedt.buf
1 select to_date(date2,'DD-MON-YYYY HH24:MI:SS')
2* from date_table
SQL> /
ERROR:
ORA-01840: input value not long enough for date format
no rows selected
SQL> ed
Wrote file afiedt.buf
1 select to_char(to_date(date2,'DD-MON-YYYY
HH24:MI:SS'))-to_char(to_date(date1,'DD-MON-YYYY HH24
2* from date_table
SQL> /
ERROR:
ORA-01840: input value not long enough for date format
no rows selected
SQL> ed
Wrote file afiedt.buf
1 select to_date(to_char(date2,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS'))-to_date(to_ch
2* from date_table
SQL> /
select to_date(to_char(date2,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS'))-to_date(to_char(da
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
SQL> ed
Wrote file afiedt.buf
1 select to_date(to_char(date2,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS')-to_date(to_cha
2* from date_table
SQL> /
TO_DATE(TO_CHAR(DATE2,'DD-MON-YYYYHH24:MI:SS'),'DD-MON-YYYYHH24:MI:SS')-TO_DATE(TO_CHAR(DATE1,'DD-MO
SQL> ed
Wrote file afiedt.buf
1 insert into date_table
2 (date1)
3* values (to_date(sysdate )
SQL> /
values (to_date(sysdate )
*
SQL> ed
Wrote file afiedt.buf
1 insert into date_table
2 (date1)
3* values (to_date(sysdate,'DD-MON-YYYY HH24:MI:SS'))
SQL> /
insert into date_table
*
ERROR at line 1:
ORA-01840: input value not long enough for date format
SQL> ed
Wrote file afiedt.buf
1 insert into date_table
2 (date1)
3* values (to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'))
SQL> /
values (to_char(sysdate,'DD-MON-YYYY HH24:MI:SS'))
*
ERROR at line 3:
ORA-01830: date format picture ends before converting entire input string
SQL> ed
Wrote file afiedt.buf
1 insert into date_table
2 (date1)
3 values (
4* (sysdate,'DD-MON-YYYY HH24:MI:SS'))
SQL> SQL> SQL> SQL> ed
TO_CHAR(DATE1,'DD-MON-YYYYHH24:MI:SS')
---------------------------------------------------------------------------
TO_CHAR(DATE2,'DD-MON-YYYYHH24:MI:SS')
---------------------------------------------------------------------------
06-AUG-2000 12:44:52
06-AUG-2000 12:46:13
SQL> ed
Wrote file afiedt.buf
1 select to_date(to_char(date2,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS')-
2 to_date(to_char(date1,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS')
3* from date_table
SQL> /
TO_DATE(TO_CHAR(DATE2,'DD-MON-YYYYHH24:MI:SS'),'DD-MON-YYYYHH24:MI:SS')-TO_DATE(TO_CHAR(DATE1,'DD-MO
SQL> ed
Wrote file afiedt.buf
1 select to_date(to_char(date2,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS')-
2 to_date(to_char(date1,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY
HH24:MI:SS')
3* from date_table
SQL>
SQL> /
TO_DATE(TO_CHAR(DATE2,'DD-MON-YYYYHH24:MI:SS'),'DD-MON-YYYYHH24:MI:SS')-TO_DATE(TO_CHAR(DATE1,'DD-MO
SQL> select to_date(sysdate,'DD-MON-YYYYHH24:MI:SS')
2 from dual;
ERROR:
ORA-01840: input value not long enough for date format
no rows selected
SQL> ed
Wrote file afiedt.buf
1 select to_char(sysdate,'DD-MON-YYYYHH24:MI:SS')
2* from dual
SQL> /
TO_CHAR(SYSDATE,'DD-MON-YYYYHH24:MI:SS')