Solved

How can I insert DATE today into a database?

Posted on 2008-10-21
5
232 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
ID: 22772812
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
ID: 22772906
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
ID: 22772922
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
ID: 22772927
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
ID: 22772941
Well, please check my answers I gave you the solution
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
JUnit 4 @Before and @BeforeClass differences 3 59
maven project error 5 54
how to add new optional parameter to JSP 1 40
how to see all occupied ports on windows 10 laptop 15 63
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
The viewer will learn how to implement Singleton Design Pattern in Java.

776 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