J'ai un serveur avec PostgreSQL 8.4 qui est redémarré tous les soirs à 01h00 (ne demandez pas) et j'ai besoin d'obtenir une liste des utilisateurs connectés (c'est-à-dire que leurs horodatages sont 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
Mais la comparaison de u.login > now()-interval '24 hour'
fournit également les utilisateurs avant 01h00, ce qui est mauvais, en particulier. les matins.
Existe-t-il un moyen efficace d' obtenir les connexions depuis le dernier 01:00 sans faire d'acrobaties de cordes avec to_char()
?