java—如何使用jsp将当前时间和未来时间插入mysql数据库

nfeuvbwi  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(364)

我很难在mysql数据库中插入合适的datetime。数据库设置为:
aucid,int(11)人工智能
最低价格,浮动
启动价格,浮动
开始日期时间,日期时间
enddatetime,日期时间

<%@ page import ="java.sql.*" %>
<% 

   try{
        String itemid = request.getParameter("itemid");   
        String startprice = request.getParameter("startprice");
        String minprice = request.getParameter("minprice");
        String startdate = request.getParameter("current");
        String enddate = request.getParameter("length");

        System.out.println(itemid);

        System.out.println(startprice);
        System.out.println(minprice);
        System.out.println(startdate);
        System.out.println(enddate);
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://xxx","xxx", "xxx");
        Statement st = con.createStatement();

        st.executeUpdate("INSERT INTO auctions (minprice, startprice, startdatetime, enddatetime, itemid) VALUES ('" + minprice + "','" + startprice + "','" + itemid + "','" + ADD CURRENT DATE + "','" + ADD FUTURE DATE + "')");
        con.close();

        String URL = "addauction.jsp";
        response.sendRedirect(URL); 

    }
    catch (SQLException e){
        System.err.println("Got an exception!");
        System.err.println(e.getMessage());
    }

    %>

我正在建立一个基本的拍卖网站。我需要能够设置创建拍卖的时间,并设置拍卖结束时的未来日期。
如果你能告诉我如何比较时间也会非常有帮助。
提前谢谢!

twh00eeo

twh00eeo1#

我的解决方案是将表中的timestamp字段配置为default now(),因此每次在db中添加一些内容而不提供该字段时,它都会自动为您填充。

vyswwuz2

vyswwuz22#

如果您使用的是prepared语句,那么可以使用 java.sql.Timestamp 类型。

String sql = "insert into tbl (col1, col2, col3) values (?, ?, ?)";
PreparedStatement stmt = dbConnection.prepareStatement(sql);
stmt.setTimestamp(3, Timestamp.valueOf(new LocalDateTime().now()));
stmt.executeUpdate();

mysql也接受 DATETIME 格式为字符串的值 YYYY-MM-DD HH:MM:SS . 可以使用生成此格式的时间字符串 DateTimeFormatter :

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

// 2018-08-03 03:50:17
LocalDateTime.now().format(formatter);

// 2018-09-03 03:50:17
LocalDateTime.now().plusMonths(1).format(formatter);

现在你要做的就是创造正确的 LocalDateTime 对于窗体参数( startdate 以及 enddate ),然后绑定 Timestamp 参数或连接格式化的 DATETIME 字符串。

m528fe3b

m528fe3b3#

首先需要将字符串“startdate”转换为日期对象。然后添加一个未来的日期,或者根据需要操纵日期。

//Convert string to date.  
String string = "January 2, 2010";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh.mm.ss");
Date date = format.parse(string);
System.out.println(date); // Sat Jan 02 00:00:00 GMT 2010

//Plus future day.
DateTime dtOrg = new DateTime(date);
DateTime dtPlusOne = dtOrg.plusDays(1);

相关问题