【问题标题】:Insert dd/mm/yyyy date format into database table将 dd/mm/yyyy 日期格式插入数据库表
【发布时间】: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 很抱歉,您能给我举个例子吗?因为我有点困惑

标签: java mysql sql


【解决方案1】:

如果你使用的是 SQL Server,你可以使用

REPLACE(CONVERT(VARCHAR(11),date,105),'-','/')

【讨论】:

  • 是的,我正在使用它。所以我将我的插入语句修改为:“INSERT INTO sm_product(productName,productDescription,productPrice,productQuantity,productStatus) VALUES ('" + name + "', '" + desc + "', " + price + ", " + quantity + ", '可用', '" + REPLACE(CONVERT(VARCHAR(11),date,105),'-','/') + "'";?
  • 但是那里的varchar有错误。我使用 netbeans 编写代码
  • 找不到符号。符号:方法 varchar(int)
  • 以上答案不起作用...您正在使用 MySQL ...以上适用于 MSSQL Server
  • 但是还有其他方法可以解决这个问题吗?
【解决方案2】:

如果您在查询中插入以下格式字符串,记录将被更新

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = new Date();
String formatDate = dateFormat.format(date);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多