java sql当前时间_关于sql server:Java-将当前日期保存到sql数据库中(时间字段)

我对此进行了各种尝试,对此非常感谢。

基本上,我有一个SQL数据库,我想将一些数据保存到其中,我知道如何对我拥有的所有其他字段执行此操作,但是我也想使用此数据保存当前时间。

str ="INSERT INTO tblResults (username, curTime, outcome)" +

"VALUES(" +"'" + user +"'" +"," + (new Timestamp(date.getTime())) +"," +"'" +     outcome +"'" +")";

然后执行该字符串,这是我多次尝试之一的示例,该尝试编译,但是出现错误:

'16'附近的语法不正确。

错误保存结果

16现在是小时...我认为是这样,因为时间戳将日期放在日期之前,而sql则相反,但是我不知道如何解决此问题,因此,我将不胜感激。 谢谢

stackoverflow.com/questions/2858182/

时间戳(java)通常与数据库中的TIMESTAMP不同。 您在数据库中为该字段指定了哪种数据类型?

建议不要使用Statement,而应使用PreparedStatement

日期如何格式化? 您是否考虑过将语句参数化? 这样可以省去将日期/时间转换为字符串然后返回的麻烦。

是的,我确实尝试过其他方法,那就是尝试所有可能性,因为我迷路了。 我指定了时间

使用PreparedStatement,它将为您进行排序:

final String str ="INSERT INTO tblResults (username, curTime, outcome)  VALUES( ?, ?, ?)";

final PreparedStatement preparedStatement = connection.prepareStatement(str);

preparedStatement.setString(1, user);

preparedStatement.setTimestamp(2, new Timestamp(date.getTime()));

preparedStatement.setString(3, outcome);

我猜你还有其他数据类型...

正如其他人所说,不建议使用Statement。

谢谢,前几天我曾尝试过准备好的语句,我不记得自己遇到了什么问题,但是我一定会再试一次。

您会在SQL查询中错过新的Timestamp()的撇号,但在这种情况下,您确实应该使用PreparedStatement。

我不知道我如何错过撇号,可能是所有删除和重新键入的内容,谢谢,前几天我确实尝试了一个准备好的语句,不知道为什么我放弃了,谢谢,我会再试一次。

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

Date date = new Date();

str ="INSERT INTO tblResults (username, curTime, outcome)" +

"VALUES(" +"'" + user +"'" +"," + dateFormat.format(date) +"," +"'"  +     outcome +"'" +")";

由于新的Timestamp(date.getTime())的参考值进入了字符串,而不是正确的时间戳格式的字符串,因此出现了错误。

替换成这个然后执行:

str ="插入tblResults(用户名,curTime,结果)" +

" VALUES(" +"'" +用户+"'" +"," +(新的Timestamp(date.getTime())。toString()+"," +"'" +结果+"'" +")";

如果不放置toString()方法,则对象的引用地址将进入字符串。

您还可以在Logger中打印整个字符串,以查看str中实际发生了什么

谢谢,我尝试了此操作,但收到此错误,知道吗? 该语句未返回结果集。 错误保存结果

您是否正在使用executeUpdate()方法插入记录? 如果您不使用此语句,请使用此语句

非常感谢,我正在使用executeQuery(); executeUpdate()已修复它,看起来至少已正确保存了它,因此至少现在我有了一些可以改善的东西。 再次感谢。

@ user2092020很高兴我解决了您的问题并回答了您的问题。 请接受我的回答。 非常感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值