Vergleiche mit DATE (wie zeitinformation ignorieren)

Hallo,

Ich möchte einige Vergleiche mit DATE-Spalten durchführen wie z.B. “where datecol = ‘2001-01-02’”, leider schlagen derartige Abfragen immer fehl - da bei PostgreSQL ja auch noch eine Zeit abgespeichert wird.
PostgreSQL vergleich also z.B. “2001-01-02 12:20” mit “2001-01-02 00:00” und kommt zu dem Schluss dass beide nicht ident sind.

Gibts eine Möglichkeit bei Vergleichen die Zeitinformation zu ignorieren?

Danke im Vorraus, lg Clemens

Ja, du kannst z.B. nach DATE casten:

test=# select now() = current_date;
 ?column?
----------
 f
(1 Zeile)

Zeit: 84,818 ms
test=*# select now()::date = current_date;
 ?column?
----------
 t
(1 Zeile)

Zeit: 17,933 ms

Andreas

Naja, wenn ich ‘2001-01-01’ nach DATE caste, hab ich doch wieder die Zeit im vergleich drinnen, oder?

Warum probierst Du es nicht einfach mal?

Andreas

Gerade gemacht, funktioniert nicht.

Das gesuchte Datum lautet: “2011-03-18 16:16:53.626”
select * from kassabuch WHERE datum = DATE(‘2011-03-18’) ergibt keinen Eintrag.

Gerade gemacht, funktioniert nicht.

Das gesuchte Datum lautet: “2011-03-18 16:16:53.626”

select * from kassabuch WHERE datum = CAST(‘2011-03-18’ AS DATE) ergibt kein match

Update: wenn ich datum nach DATE caste, klappts :slight_smile:

Danke

Das schreibt man besser als

DATE ‘2011-03-18’

Oder: ‘2011-03-18’: :smiley: ATE