[英]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;
$1
是integer
类型。 不是类似于text
的字符串类型,否则您可能有SQL注入孔。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.