我需要更新Postgres(8.3)数据库中的表中的一些时间戳列.
我的查询(简化)如下所示:
update table1 set dateA = dateA + interval '10 hours' where id = 1234;
Run Code Online (Sandbox Code Playgroud)
这是脚本的一部分,需要更新很多,所以我的首选是使用绑定变量,而不是每次都要构建查询字符串.这意味着我的查询变为:
update table1 set dateA = dateA + interval '? hours' where id = ?;
Run Code Online (Sandbox Code Playgroud)
当我这样做时,抱怨是我只提供了2个绑定变量,只需要一个.
如果我试图把?外面的引号标记:
update table1 set dateA = dateA + interval ? ' hours' where id = ?;
Run Code Online (Sandbox Code Playgroud)
我明白了:
... syntax error at or near "' hours'"
Run Code Online (Sandbox Code Playgroud)
看起来好像查询已被解释为
... dateA = dateA + interval '10' ' hours' ...
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到任何帮助......有什么建议吗?
谢谢
Mic*_*uen 10
试试这个:
update table1 set dateA = dateA + ( (interval '1 hours') * ? ) where id = ?;
Run Code Online (Sandbox Code Playgroud)
或这个:
update table1 set dateA = dateA + cast(? || ' hours' as interval) where id = ?;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |