|
October 14, 2005, 11:16 AM
|
|
Super Moderator BC Editorial Team
|
|
Join Date: February 12, 2004
Location: Canada
Favorite Player: Ice Man, Chatter Box
Posts: 27,678
|
|
Quick JDBC/Oracle Question
Does anyone know how dates are stored in Oracle? I'm trying to get today's date and insert it into my database using SQL statements in my JDBC. I'm currently using java.util.date, but am getting an SQL exception when I try to execute my prepared statement. I was wondering whether this could happen because I have a couple of columns of type date of length 7 (Oracle default) but I am probably sending in the wrong format to the database with the JDBC.
Here's the resulting SQL: "INSERT INTO BUNDLE (ESELLINGID,CREATE_DATE,CREATE_BY,LST_UPD_DATE,LST _UPD_USR,EN,FR_CA,AR) VALUES ('eselling.test1','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005','Fri Oct 14 12:10:05 EDT 2005')"
looks ok to me.
oh and another thing: if i want to get a date using a java method and insert that into a varchar field in the back end, do I have to convert the date to a string? or can Oracle still store it?
Edited on, October 14, 2005, 4:17 PM GMT, by AsifTheManRahman.
|
October 14, 2005, 12:59 PM
|
|
Super Moderator BC Editorial Team
|
|
Join Date: February 12, 2004
Location: Canada
Favorite Player: Ice Man, Chatter Box
Posts: 27,678
|
|
ok i don't need it anymore, but would sure like to know the answer if anyone ever comes across anything like that.
|
October 14, 2005, 01:55 PM
|
|
Administrator Operations & Administrations
|
|
Join Date: June 20, 2002
Location: Montreal, Canada
Favorite Player: Mashrafe Mortaza
Posts: 7,825
|
|
The oracle date is dd-mmm-yyyy format.
You are trying to insert a date objects toString value. To do that.. use this instead
INSERT INTO BUNDLE
(ESELLINGID,CREATE_DATE,CREATE_BY,LST_UPD_DATE,LST _UPD_USR,EN,FR_CA,AR)
VALUES
('eselling.test1',
to_date(replace('Fri Oct 14 12:10:05 EDT 2005','EDT'),'Dy Mon dd hh24:mi s yyyy'),
.............
Or do it the right way....
java.util.Date dt = new java.util.Date();
java.text.DateFormat format = new java.text.SimpleDateFormat( "dd-MMM-yyyy" );
String myDate = format.format(dt);
myDate is now the string 14-OCT-2005
Now use this myDate to insert in your query...to insert, list this value as..
INSERT INTO BUNDLE
(ESELLINGID,CREATE_DATE,CREATE_BY,LST_UPD_DATE,LST _UPD_USR,EN,FR_CA,AR)
VALUES
('eselling.test1',
TO_DATYE('14-OCT-2005', 'dd-mon-yyyy'),
.............
|
October 14, 2005, 01:56 PM
|
|
Moderator
|
|
Join Date: February 15, 2004
Location: Michigan
Favorite Player: Mashrafee Mortaza
Posts: 8,361
|
|
SQL accept date format: yyyy-mm-dd
But java data format is, mm-dd-yyyy by default. I believe that is what causing the problem. you can change the date format for java, and fix the date format to yyyy-mm-dd and i think everything will be fine.
here is some code, that might help:
use these imports:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
then, the code goes something like....
Date dst = new Date();
SimpleDateFormat yourDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
st = yourDate.format(dst);
Edited on, October 14, 2005, 6:56 PM GMT, by Rubu.
|
October 14, 2005, 02:00 PM
|
|
Super Moderator BC Editorial Team
|
|
Join Date: February 12, 2004
Location: Canada
Favorite Player: Ice Man, Chatter Box
Posts: 27,678
|
|
Quote:
originally posted by Mahmood
The oracle date is dd-mmm-yyyy format.
You are trying to insert a date objects toString value. To do that.. use this instead
INSERT INTO BUNDLE
(ESELLINGID,CREATE_DATE,CREATE_BY,LST_UPD_DATE,LST _UPD_USR,EN,FR_CA,AR)
VALUES
('eselling.test1',
to_date(replace('Fri Oct 14 12:10:05 EDT 2005','EDT'),'Dy Mon dd hh24:mi s yyyy'),
.............
Or do it the right way....
java.util.Date dt = new java.util.Date();
java.text.DateFormat format = new java.text.SimpleDateFormat( "dd-MMM-yyyy" );
String myDate = format.format(dt);
myDate is now the string 14-OCT-2005
Now use this myDate to insert in your query...to insert, list this value as..
INSERT INTO BUNDLE
(ESELLINGID,CREATE_DATE,CREATE_BY,LST_UPD_DATE,LST _UPD_USR,EN,FR_CA,AR)
VALUES
('eselling.test1',
TO_DATYE('14-OCT-2005', 'dd-mon-yyyy'),
|
no, actually, the SQL that i sent you was not done manually, but rather the result of passing in variables into the preparedStatement. I wasn't typing in anything manually, and neither was I doing a toString().
instead, i was somewhat following your way. this is what i was doing:
java.util.Date dt = new java.util.Date();
and then passing in a string of dt's into the prepared statement.
i guess the thing that i was doing wrong is that i wasnt formatting the dates, i.e. i wasnt using any DateFormat.
i'll try it out. thanks.
Edited on, October 14, 2005, 7:06 PM GMT, by AsifTheManRahman.
|
October 14, 2005, 02:06 PM
|
|
Super Moderator BC Editorial Team
|
|
Join Date: February 12, 2004
Location: Canada
Favorite Player: Ice Man, Chatter Box
Posts: 27,678
|
|
and thanks rubu.
|
October 14, 2005, 02:09 PM
|
|
Administrator Operations & Administrations
|
|
Join Date: June 20, 2002
Location: Montreal, Canada
Favorite Player: Mashrafe Mortaza
Posts: 7,825
|
|
Quote:
Originally posted by AsifTheManRahmanno, actually, the SQL that i sent you was not done manually, but rather the result of passing in variables into the preparedStatement. I wasn't typing in anything manually, and neither was I doing a toString().
instead, i was somewhat following your way. this is what i was doing:
java.util.Date dt = new java.util.Date();
and then passing in a string of dt's into the prepared statement.
i guess the thing that i was doing wrong is that i wasnt formatting the dates, i.e. i wasnt using any DateFormat.
i'll try it out. thanks.
Edited on, October 14, 2005, 7:06 PM GMT, by AsifTheManRahman.
|
In that case... here is whats best.
Use your java date object to be java.sql.Date.
Then in your prepare statement, just pass the date object with setDate and all done.
|
October 14, 2005, 02:13 PM
|
|
Super Moderator BC Editorial Team
|
|
Join Date: February 12, 2004
Location: Canada
Favorite Player: Ice Man, Chatter Box
Posts: 27,678
|
|
yes i was thinking about java.sql.Date, but wasnt sure. thanks.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is On
|
|
|
All times are GMT -5. The time now is 04:27 PM.
|
|