繁体   English   中英

timestamp()是否不接受函数参数作为输入?

[英]timestamp() do not take function parameter as input?

我在PostgreSQL中使用SQL

cast(col as timestamp($1))

它给我参数周围的错误

当我直接给出数字时,sql起作用:

cast(col as timestamp(1))

那么时间戳不带函数参数吗?

timestamp类型精度修饰符是类型名称的一部分,不能在普通SQL中进行参数化。 这不是一个函数,即使带有括号的语法看起来一样。

为此,您将需要动态SQL。 在PL / pgSQL函数中,将语句构建为字符串,然后使用EXECUTE运行它。 就像是:

EXECUTE 'SELECT col::timestamp(' || $1 || ')'
INTO my_var;

$1integer类型。 不是类似于text的字符串类型,否则您可能有SQL注入孔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM