我在編寫一個查詢某些設備並將數據寫入PostgreSQL數據庫的腳本。PostgreSQL,Perl,DBD和帶有「TO_TIMESTAMP」的插入命令
該數據包括格式化爲31.12.2015 13:45:00
的日期。數據庫使用DateType「German」,並且該列的類型是Timestamp,但不帶時區。
我總是收到此錯誤信息
DBD::Pg::st execute failed: ERROR: invalid input syntax for type timestamp: "TO_TIMESTAMP('19.06.2015 11:24:20','DD.MM.YYYY HH24:MI:SS')::timestamp without time zone" at temp_alcp2e_db.pl line 80, line 289.
我使用這個代碼,其中$date_db
有日期值:
$date_db = 'TO_TIMESTAMP(\'' . $date_db . '\',\'DD.MM.YYYY HH24:MI:SS\')::timestamp without time zone';
$stmt = $dbh->prepare("INSERT INTO rifutemp (\"USER_LINK_ID\", \"IP\", \"DATUM\", \"TEMPERATURE\") VALUES (?, ?, ?, ?)");
$stmt->execute($key_bgtr, $key_ip, $date_db, $temperatur) or die $DBI::errstr;
希望有人能告訴我我做錯了什麼。
不能在事先準備好的聲明參數使用的功能。 – Jens
http://snag.gy/drNx6.jpg pg'9.3.3' –
PostgreSQL Docs說德語的格式是:「德語\t區域樣式\t 17.12.1997 07:37:16.00 PST」so've試圖將值編輯爲所需的格式,這也不起作用:「DBD :: Pg :: st執行失敗:錯誤:日期/時間字段值超出範圍:」19.06.2015 12:02:55.00 PST「 HINT :也許你需要一個不同的「日期樣式」設置。「,任何想法如何解決這個問題? – JanAx