0
votes

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);
2
Use a second table, which is keyed via a foreign key, to the first - MadProgrammer
Have a look at this SO Post - Sivakumar
@MadProgrammer Save the 'date' as String first on the other table? - meatno
Save the date as java.sql.Date...(I also assume you mean you want to store a variable list of dates) - MadProgrammer

2 Answers

1
votes

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.

0
votes

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;
 }