Wählen Sie nur die Zeitstempel von heute (seit Mitternacht)

Ich habe einen server mit PostgreSQL 8.4 wird neu gestartet jede Nacht um 01:00 Uhr (Fragen Sie nicht) und brauchen, um eine Liste der verbundenen Benutzer (d.h. deren Zeitstempel u.login > u.logout):

SELECT u.login, u.id, u.first_name
FROM pref_users u
WHERE u.login > u.logout and 
      u.login > now() - interval '24 hour'
ORDER BY u.login;

           login            |           id   | first_name
----------------------------+----------------+-------------
 2012-03-14 09:27:33.41645  | OK171511218029 | Alice
 2012-03-14 09:51:46.387244 | OK448670789462 | Bob
 2012-03-14 09:52:36.738625 | OK5088512947   | Sergej

Aber im Vergleich u.login > now()-interval '24 hour' liefert auch die Anwender, bevor die letzten 01:00, das ist schlecht, insb. in den morgen.

Gibt es eine effiziente Möglichkeit, Holen Sie sich die logins seit der letzten 01:00 ohne string-Akrobatik mit to_char()?

InformationsquelleAutor der Frage Alexander Farber | 2012-03-15

Schreibe einen Kommentar