<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Błędny format timestamp?]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=151</link>
		<description><![CDATA[Najświeższe odpowiedzi w Błędny format timestamp?.]]></description>
		<lastBuildDate>Thu, 12 Mar 2009 06:11:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Błędny format timestamp?]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=614#p614</link>
			<description><![CDATA[Dzięki z apostrofami jest OK]]></description>
			<author><![CDATA[dummy@example.com (WitekS)]]></author>
			<pubDate>Thu, 12 Mar 2009 06:11:49 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=614#p614</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Błędny format timestamp?]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=613#p613</link>
			<description><![CDATA[Brakuje apostrofow (chyba podwójnych) w  execute

[code]EXECUTE 'INSERT INTO "'||Pojazd||'" ("dtDataGodzina", "idfkAwarieSkroty", "sintNrBitu", "intWartosc")
        VALUES ('''||dg||''', '||AwariaSkrot||', 0, '||val||')';[/code]]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Wed, 11 Mar 2009 17:34:38 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=613#p613</guid>
		</item>
		<item>
			<title><![CDATA[Błędny format timestamp?]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=612#p612</link>
			<description><![CDATA[Witam 
mam tabelę mt_read do której wstawiam rekord:
[code]INSERT INTO mt_read(mt_name, mt_value, mt_time, mt_quality)
    VALUES ('dev(IP XXX_XXX_XXX_XXX)--mt42.REG119', 12345, '2011-11-11 12:11:10', 1);[/code]
do tej tabeli jest wyzwalacz:
[code]CREATE OR REPLACE FUNCTION f_tri_ai_aktual_mt_read() RETURNS trigger AS

$$

DECLARE 

licz INTEGER DEFAULT 0;
dg timestamp without time zone;
val INTEGER;
AwariaSkrot SMALLINT;
Pojazd INTEGER;
BitInfo SMALLINT; 
str VARCHAR;

BEGIN

dg := NEW.mt_time; 
val := NEW.mt_value;
AwariaSkrot := f_txt_AwariaSkrot_sint(NEW.mt_name);
Pojazd := f_txt_Pojazd_int(NEW.mt_name);
BitInfo := f_txt_BitInfo_sint(NEW.mt_name);

    SELECT INTO str tablename FROM pg_tables WHERE tablename=(Pojazd::integer)::varchar;
        IF not found THEN
        PERFORM f_int_CreateTable_tbl(Pojazd);

        END IF;

IF (BitInfo = 0) THEN 
    EXECUTE 'INSERT INTO "'||Pojazd||'" ("dtDataGodzina", "idfkAwarieSkroty", "sintNrBitu", "intWartosc")
        VALUES ('||dg||', '||AwariaSkrot||', 0, '||val||')';
RETURN NEW;
END IF;

IF (BitInfo = 16) THEN 
WHILE licz < 16 
LOOP
    IF ((val & (1<<licz))<>0) THEN 
        EXECUTE 'INSERT INTO "'||Pojazd||'" ("dtDataGodzina", "idfkAwarieGrupy", "sintNrBitu", "sintWartosc")
            VALUES ('||dg||', '||AwariaSkrot||', '||licz + 1||', '||(val & (1<<licz))||')';
    END IF;
    licz=licz+1;
END LOOP;

RETURN NEW;
END IF;

END;
$$
LANGUAGE PLPGSQL;[/code]
po wstawieniu rekordu dane trafiają do mt_read jest OK ale wyskakuje błąd przy wpisaniu danych do innej tabeli z tego co rozumiem to błąd dotyczy złego formatu zapisu typu timestamp:
[code]ERROR:  syntax error at or near "12"
LINE 2:   VALUES (2011-11-11 12:11:10, 22, 0, 12345)
                             ^
ZAPYTANOE:  INSERT INTO "365" ("dtDataGodzina", "idfkAwarieSkroty", "sintNrBitu", "intWartosc")
        VALUES (2011-11-11 12:11:10, 22, 0, 12345)
KONTEKST:  PL/pgSQL function "f_tri_ai_aktual_mt_read" line 27 at EXECUTE statement

********** Błąd **********

ERROR: syntax error at or near "12"
Stan SQL:42601
Kontekst:PL/pgSQL function "f_tri_ai_aktual_mt_read" line 27 at EXECUTE statement[/code]
w obydwu tabelach pola zapisu znacznika czasowego są identyczne...]]></description>
			<author><![CDATA[dummy@example.com (WitekS)]]></author>
			<pubDate>Wed, 11 Mar 2009 13:22:07 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=612#p612</guid>
		</item>
	</channel>
</rss>
