簡體   English   中英

Sysdate作為字符串

[英]Sysdate as string

我正在從Android設備發送到服務器字符串sysdate() 問題是代碼沒有向mysql數據庫插入任何內容。 first列是DATETIME 當我輸入INSERT INTO test (first) VALUES (sysdate());時,我正在使用mysql工作台INSERT INTO test (first) VALUES (sysdate()); 在工作台上,它可以工作。

<%
     String t = request.getParameter("time");
            Connection connection = null;
            PreparedStatement pstatement = null;
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            int updateQuery = 0;
            if (t != null) {
                if (t != "" ) {
                    try {
                        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
                        Statement st = connection.createStatement();
                        String queryString1 = "INSERT INTO test (first) VALUES (?)";
                        pstatement = connection.prepareStatement(queryString1);
                        pstatement.setString(1, t);
                        updateQuery = pstatement.executeUpdate();
                        if (updateQuery != 0) {
                            response.setStatus(400);
                        }
                    } catch (Exception ex) {
                        out.println(ex);

                    } finally {
                        pstatement.close();
                        connection.close();
                    }
                } 
            } 
        %>

我的Java非常生銹,但是沒有其他人參與進來,因此我將嘗試一下。 我記得使用JDBC時比較棘手。

這是兩次嘗試,但請注意,它們尚未測試,因為我現在沒有安裝程序來測試它們。

方法1 :將日期作為字符串傳遞,並由MySQL進行轉換。 代替您的INSERT語句:

String queryString1 = "INSERT INTO test (first) VALUES (?)";

... 嘗試這個:

String queryString1 = "INSERT INTO test (first) VALUES (str_to_date(?, '%Y-%m-%d %H:%i:%s'))";

方法2 :使用PreparedStatement.setDate而不是PreparedStatement.setString 請注意,這使用的是原始INSERT語句,而不是方法1中建議的語句 這意味着將字符串date t轉換為java.util.Date ,然后轉換為java.sql.date

代替您的set

pstatement.setString(1, t);

... 嘗試這個:

// Change string to java.util.Date
java.util.Date dt = new java.text.SimpleDateFormat(
    "yyyy-MM-dd HH:mm:ss", java.util.Locale.ENGLISH).parse(t);

// Change java.util.Date to java.sql.Date
java.sql.Date sqlDt = new java.sql.Date(dt.getTime());

// Set parameter as a date
pstatement.setDate(1, sqlDt);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM