我在psql裏工作的服務器端(使用SSH),其中,I組使用「\組」命令變量語法錯誤。PSQL:使設置日期變量時成日期時間
我擔心的是這樣的:我有一個查詢在那裏我將一組串(日期)到一個日期時間,但我拋出一個語法錯誤。
簡單的例子:
SELECT
network_no,
program_no,
national_datetime.
FROM
views
WHERE
national_datetime
between ':from_date 06:00:00'
and ':to_date 05:59:59'::timestamp + '1 day'::interval
其中「FROM_DATE」和「TO_DATE」也作了相應的設置:
\set from_date 2017-07-10
\set to_date 2017-07-16
我與你應該設置三套撇號的爲日期通常知道閱讀正確(我從來沒有查找的原因),但我喂這個日期到一個日期時間,所以我想用撇號將工作,但我得到這個錯誤:
ERROR: invalid input syntax for type timestamp: ":from_date 06:00:00"
LINE 40: between ':from_date 06:00:00'
通常在bash腳本這樣的工作,因爲它只是傳遞的字符串值,但是在這種情況下,我是否放不出或一組單引號周圍的日期值也不會傳遞值(我假設由於PSQL處理設置變量的方式。
我知道有這方面的方法,但我正在尋找一個理由爲什麼這樣的事情會發生,是否有一個簡單的方法來解決「無效輸入語法」 - 無論是通過鑄造一個變量,預先設置不同的變量,等
非常感謝!
這完美地工作。有一件事需要注意,其他人閱讀這篇文章的時候,你需要在設置變量時使用三組撇號(例如:\ set from_date'''2017-07-10''')來讀取它正確。 此外,從上面的回答結果類型將隱式計算爲時間戳,所以如果你有時間間隔的邏輯要補充的,以及,你可以添加類似(+'1一天::間隔)的方程以及沒有明確的類型轉換。 – swagardson