【发布时间】:2013-06-19 09:50:36
【问题描述】:
我正在尝试将 dd/mm/yyyy 日期格式插入到我的数据库表中。数据库中日期列的数据类型是日期,我的SQL插入语句是:
INSERT INTO sm_product(productName, productDescription, productPrice, productQuantity, productStatus)
VALUES ('" + name + "', '" + desc + "', " + price + ", " + quantity + ", 'Available', '" + date + "'";
但是,当我将日期变量添加到 SQL 语句中时,netbeans 显示错误。
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法
并将日期存储为:
2013 年 6 月 19 日星期三 17:42:26 SGT
我在用户界面中得到了我的 dd/mm/yyyy 日期格式:
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = new Date();
dateFormat.format(date);
这种格式不是我想要的。所以我想知道我应该如何修改我的 SQL 语句来解决这个问题。
提前致谢。
【问题讨论】:
-
如果你真的想要另一种日期格式。您可以在基础中使用 varchar 列,并在参数中提供格式化字符串。
-
但我认为使用日期数据类型更好?因为我需要稍后从日期获取月份。我可以用 varchar 做到这一点吗?
-
要得到月份,可以拆分字符串,得到MM。但是不要忘记,我不知道这是否是更好的解决方案,但它可以是一个解决方案。
-
您应该使用参数并将日期时间数据保存在变量中,并始终使用
datetime类型。这些类型没有格式。您应该尽可能晚地在输出中应用格式,并且应该尽早从字符串中解析日期以进行输入。当您与数据库交谈时,它应该只是datetime变量。 -
@Damien_The_Unbeliever 很抱歉,您能给我举个例子吗?因为我有点困惑