Problem mit Datum in SQL

Guten Tag!
HAbe kkeine Ahnung, was folgende Fehlermeldung zu bedeuten hat…

ERROR: date/time field value out of range: “16.01.2006”
TIP: Perhaps you need a different “datestyle” setting.

Greife mit C++ auf die Postgres DB zu und der SQLBefehl sieht so aus:

select sum(km0005) as Personalkosten from lobu.kst_monatswerte where ma0000 ='9997800100' and km0003 between '16.01.2006' and '2006-02-12';

Bitte um Erklärung! :?:

Warum nutzt du nicht in beiden Werten das Format yyyy-mm-dd?

Ansonsten sollte dir folgende Seite weiterhelfen:

http://www.postgresql.org/docs/8.1/interactive/datatype-datetime.html#DATATYPE-DATETIME-INPUT

das mit den zwei unterschiedlichen formaten war nur ein test!
auch wenn beide formate gleich sind kommt die fehlermeldung.

so wie ich das verstanden habe in dem link akzeptiert postgres doch beide formate oder???

warum meckert er mit dieser fehlermeldung???

test=# select 1 as result where now() between '2005-01-01' and '2007-01-01';
 result 
--------
      1
(1 row)

Hmm, ich kann nicht meckern, das funktioniert einwandfrei.

Auch das hier:

test=# select 1 as result where now() between '1.1.2005' and '1.1.2007';
 result 
--------
      1
(1 row)

Funktionieren also beide Formate …

Von welchem Typ ist die Spalte km0003?

km0003 ist vom typ date!

Hmm, ich muss passen, ich kann auf den ersten Blick keinen Fehler finden. Wie sieht das aus, wenn du beide Datumsangaben explizit nach date castest? Bzw. welches Format nutzt du, wenn du in beiden Fällen das gleiche Format nutzt? Das ISO oder das deutsche Format?

Hallo,

versuch es mal mit einem CAST auf den Type. So wie es geschrieben ist, kann es durchaus als TEXT interpretiert werden.



mfg

fristo

Problem gelöst!Danke!

Das hilft uns nichts, sag lieber, woran es lag :wink:
Damit wir in Zukunft nicht noch mal die Lösung suchen.

es lag an c++…schäm!
ich muss den folgenden parameter in c++ übergeben dann läufts!

Query2->ParamByName("selected_Date")->AsDateTime = MonthCalendar1->Date;
Query2->ParamByName("end_Date")->AsDateTime = MonthCalendar1->EndDate;

Ah ja, dann schreibt also der C++ Connector die Queries selbstständig um? Vielleicht bei weiteren derartigen Problemen einen Blick ins Logfile werfen, was dort effektiv als Query ankommt.