Solved

How can I insert DATE today into a database?

Posted on 2008-10-21
5
228 Views
Last Modified: 2012-05-05
I tried this but there is error:

            Calendar cal = Calendar.getInstance();
            while (uprs.next())
            {              
            uprs.updateTime("datecol", cal.getTime());
            uprs.updateRow();        
            }
0
Comment
Question by:glynco
  • 3
  • 2
5 Comments
 
LVL 6

Expert Comment

by:javaexperto
Comment Utility
The first line you format the date in order to match the format in your database
second line just get the current time.
third line put into a String the formated date.



SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

Date currentTime = c.getTime();

String dateString = formatter.format(currentTime);
 

//To insert only append the date String. For example:

statement.executeUpdate("INSERT INTO mesa_venta values(" + date + ")");

Open in new window

0
 

Author Comment

by:glynco
Comment Utility
Still not working. Here is the code, no errors but the date is not added to the database.


 
 

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;
 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

 

public class DemoPreparedStatementSetDate

{

    public static void main(String[] args) throws Exception

    {

        Connection con = null;

        try

        {

            // Here we load the MySQL database Driver class

            Class.forName("com.mysql.jdbc.Driver");

 

            // Define properties for connecting to database such as

            // database jdbc url, username and password

            String url = "jdbc:mysql://localhost/datedb";

            String username = "root";

            String password = "root";

 
 

            con = DriverManager.getConnection(url, username, password);

                        Statement statement = con.createStatement();

            

Statement stmt = con.createStatement(

ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

ResultSet uprs = stmt.executeQuery("SELECT * FROM datetable");

          

Calendar cal = Calendar.getInstance();

SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

Date currentTime = cal.getTime();

String dateString = formatter.format(currentTime);
 

while (uprs.next())

            {
 

 

//To insert only append the date String. For example:

statement.executeUpdate("INSERT INTO date_column values(" + dateString + ")");

uprs.updateRow();

            }
 

        } 

          

        

        finally {

            if (con != null && !con.isClosed())

            {

                con.close();

            }

        }

    }

}

Open in new window

0
 

Author Comment

by:glynco
Comment Utility
Solved.
import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;
 

public class DemoPreparedStatementSetDate {

  public static java.sql.Date getCurrentJavaSqlDate() {

    java.util.Date today = new java.util.Date();

    return new java.sql.Date(today.getTime());

  }
 

  public static Connection getConnection() throws Exception {

    String driver = "org.gjt.mm.mysql.Driver";

    String url = "jdbc:mysql://localhost/datedb";

    String username = "root";

    String password = "root";

    Class.forName(driver);

    Connection conn = DriverManager.getConnection(url, username, password);

    return conn;

  }
 

  public static void main(String[] args) throws Exception {

    Connection conn = null;

    PreparedStatement pstmt = null;

    try {

      conn = getConnection();

      String query = "insert into datetable(id, date_column) values(?, ?)";

      pstmt = conn.prepareStatement(query);

      pstmt.setString(1, "0001");

      java.sql.Date date = getCurrentJavaSqlDate();

      pstmt.setDate(2, date);
 

      // execute query, and return number of rows created

      int rowCount = pstmt.executeUpdate();

      System.out.println("rowCount=" + rowCount);

    } finally {

      pstmt.close();

      conn.close();

    }

  }

}

Open in new window

0
 
LVL 6

Expert Comment

by:javaexperto
Comment Utility
In my case I have a DateTime column so if you only have a date try this:


SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");

Open in new window

0
 
LVL 6

Accepted Solution

by:
javaexperto earned 500 total points
Comment Utility
Well, please check my answers I gave you the solution
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now