在参数化语句中使用 SQL 函数

发布于 2024-09-16 10:29:33 字数 247 浏览 12 评论 0原文

考虑这个查询:

insert (a, b, update_time) values (1, 1, now() - interval 10 second)

现在,我需要将其转换为参数化语句:

insert (a, b, update_time) values (?, ?, ?) 

问题是你不能在参数中使用 SQL 函数。我该如何编写这样的代码?

Considering this query:

insert (a, b, update_time) values (1, 1, now() - interval 10 second)

Now, I need to convert it to a parameterized statement:

insert (a, b, update_time) values (?, ?, ?) 

The problem is you cannot use SQL function in the parameter. How do I write this kind of code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-09-23 10:29:33
Date now = new Date();
PreparedStatement ps = connection.prepareStatement("INSERT INTO your_table(a, b, update_time) VALUES(?, ?, ?)");
ps.setObject(1, a);
ps.setObject(2, b);
ps.setDate(3, now);
ps.executeUpdate();
Date now = new Date();
PreparedStatement ps = connection.prepareStatement("INSERT INTO your_table(a, b, update_time) VALUES(?, ?, ?)");
ps.setObject(1, a);
ps.setObject(2, b);
ps.setDate(3, now);
ps.executeUpdate();
往事随风而去 2024-09-23 10:29:33

不需要参数化日期代码:

insert (a, b, update_time) values (?, ?, now() - Interval 10 Second)

现在只需要两个参数,日期就会被处理在服务器上。我在 JDBC 和 MySQL 之间遇到了有关夏令时的时区问题。当心!

There's no need to parameterize the date code:

insert (a, b, update_time) values (?, ?, now() - interval 10 second)

Now it only takes two parameters and the date will be handled on the server. I've had timezone issues between JDBC and MySQL concerning daylight savings time. Be careful!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文