0

How can I store a specific date from java to my database? (Not only the date today, but also some dates that the user wants to specifiy)

try {
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");       
        Date date = dateFormat.parse(tf.getText());
        String d = dateFormat.format(date); 

        String str = "insert into tableName(tDate) values (?)";
                con = mysqlConnection.dbConnector();
                prs = con.prepareStatement(str);
                prs.setDate(1, // dont know what to put here);

                int rsUpdate = prs.executeUpdate();
                con.close();
                prs.close();
    } catch(ParseException exx) {
                System.err.println(exx);
MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
meatno
  • 19
  • 2
  • 6

2 Answers2

1

Use

prs.setDate( 1, new java.sql.Date( date.getTime() ) );

The types java.sql.Date and java.sql.Timestamp are suppoed to be used to set date and timestamp fields, respectively. Read their documentation for the differences between them and between them and java.util.Date.

You usually get a java date (java.util.Date) from the user. You convert it to milliseconds since the epoch using getTime(), and then convert back to a java.sql.Date or java.sql.Timestamp as I have shown.

RealSkeptic
  • 33,993
  • 7
  • 53
  • 79
  • It inserts a whole bunch of 000's – meatno Feb 03 '15 at 06:42
  • @meantro Then you should put in your original question: (a) the definition of the table, and (b) the result of `System.out.println(date)` just before you do the `setDate()` so that we know it contains valid data. – RealSkeptic Feb 03 '15 at 08:05
0

use this it can help

  static  java.sql.Timestamp getSqlDate(Date date) {    
        java.util.Date javaDate = date;
        long javaTime = javaDate.getTime();
        java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(javaTime);
        return sqlTimestamp;
 }