JSF:将每月 - 每年的字符串日期插入Mysql

时间:2017-03-18 21:55:29

标签: mysql sql-date-functions

我的java蓝图中的日期格式为月 - 日 - 年。 这是它的代码

public String getFormattedDate() {
    return new SimpleDateFormat("MM-dd-yyyy").format(dueDate);
}

我想在月 - 日 - 年使用相同的格式将此日期转换或插入到mysql预编译语句中。但有些我怎么也无法让它发挥作用。 我有类似的东西

ps.setString(5, out.getFormattedDate());

当我运行我的代码时,我收到此错误消息

  

com.mysql.jdbc.MysqlDataTruncation:数据截断:日期不正确   值:'04 -01-2017',用于第1行的'DueDate'列

这是我正在使用的插入语句,如果有帮助我就是

String query = "INSERT INTO Checkout (FirstName, LastName, EmailAddress, BookTitle, DueDate) "
            + "VALUE (?, ?, ?, ?, ?)";

我希望有些人可以帮助我。

2 个答案:

答案 0 :(得分:0)

MySQL使用' YYYY-MM-DD'中的DATE值。格式。 MYSQL reference

也许你可以使用STR_TO_DATE():

答案 1 :(得分:0)

您将String值设置为Date值。 您的DueDate列是日期值,因此您必须将其更改为varchar,或者在执行select时必须使用DATE_FORMAT函数。 所以你有两个选择:

*使用DATE_FORMAT函数:

SELECT DATE_FORMAT(DueDate,'%m/%d/%Y') AS 'FormatDate' FROM Checkout

(此选择返回String值)

*在MySQL中将DueDate更改为varchar。

希望我解决了你/别人的问题。 (有点晚了)。