簡體   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