【问题标题】:How can I create an update query that change the value of a field with the sysdate?如何创建使用 sysdate 更改字段值的更新查询?
【发布时间】:2015-03-18 10:18:19
【问题描述】:

我正在开发一个使用 JDBC 对数据库执行查询的 Java 应用程序,但我在非常简单的 update 查询中遇到了以下问题。

所以我有这个查询(实际上不完整):

sb.append("UPDATE coda_tx c SET c.FK_STATO = ");
sb.append(newStatus);
sb.append(",c.DATA_OUT = ");
sb.append(???)
sb.append(" WHERE c.PK_CODA = ");
sb.append(pkCoda);

所以这个查询可以简单地更新 coda_tx 表的 2 个字段。

FK_STATO 字段更新不是问题(它是用字符串更新的,它工作正常,我在以前的查询版本中尝试过)但我不知道如何正确更新 DATA_OUT 字段是 DATE SQL 字段。

具体来说,我知道它是用 sysdate 更新的,它说:

  • CODA_TX.data_out = 系统日期

所以我认为它必须使用从 Java 检索到的当前日期进行更新。是对的还是我错过了什么?这个 sysdate 到底是什么?如何正确检索和使用?

我有什么可以代替 ???sb.append(???) 来更新字段?

Tnx

【问题讨论】:

  • 也许这会有所帮助? stackoverflow.com/questions/18257648/…
  • 与问题无关,但你为什么不使用绑定变量来设置newStatuspkCoda
  • Alex 的意思是你很容易受到 SQL 注入的攻击。

标签: java sql oracle jakarta-ee jdbc


【解决方案1】:

只需使用数据库中的系统日期值。使用:

c.DATA_OUT = sysdate

update 语句中。

【讨论】:

  • 所以,在我之前的查询中,我可以执行 sb.append(sysdate);还是什么?
  • @AndreaNobili - 不,sysdate 是一个数据库函数,Java 不知道;所以要么sb.append("sysdate") 要么将它包含在上一个附加中(也许也合并下一个)。
猜你喜欢
  • 2019-11-10
  • 2019-10-01
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 2021-08-10
相关资源
最近更新 更多