[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 252
  • Last Modified:

How can I insert DATE today into a database?

I tried this but there is error:

            Calendar cal = Calendar.getInstance();
            while (uprs.next())
            {              
            uprs.updateTime("datecol", cal.getTime());
            uprs.updateRow();        
            }
0
glynco
Asked:
glynco
  • 3
  • 2
1 Solution
 
javaexpertoCommented:
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
 
glyncoAuthor Commented:
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
 
glyncoAuthor Commented:
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
 
javaexpertoCommented:
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
 
javaexpertoCommented:
Well, please check my answers I gave you the solution
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now