Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 13/06/2013 11:43:07
- mortimer.pw
- Membre
Fonction avec intervalle
Bonjour,
Je travaille sous PostgreSQL 8.4 à 9.2 sous CentOS 5.9.
J'ai une requête Oracle à porter sous PostgreSQL.
SELECT TO_CHAR(CEIL((TO_DATE(TO_CHAR(jour,'dd/mm/yy') ||' '|| heure, 'dd/mm/yy hh24:mi:ss')-DATE '-4712-01-01')*288)/288+DATE '-4712-01-01','hh24:mi:ss'),COUNT(*)
FROM ma_table
WHERE jour>=TO_DATE('20130501','YYYYMMDD') AND jour<=TO_DATE('20130531','YYYYMMDD')
AND code='9999'
GROUP BY TO_CHAR(CEIL((TO_DATE(TO_CHAR(jour,'dd/mm/yy') ||' '|| heure, 'dd/mm/yy hh24:mi:ss')-DATE '-4712-01-01')*288)/288+DATE '-4712-01-01','hh24:mi:ss');
Elle me retourne le nombre de lignes par intervalle de 5min.
PostgreSQL semble ne pas apprécier le '-4712-01-01', il me retourne : "time zone displacement out of range: "-4712-01-01"
Avez-vous une idée du problème ?
Hors ligne
#2 14/06/2013 01:16:21
- rjuju
- Administrateur
Re : Fonction avec intervalle
Bonjour,
je ne pense pas qu'on puisse saisir de date négative sous postgres.
Julien.
https://rjuju.github.io/
Hors ligne
#3 17/06/2013 11:06:18
- Marc Cousin
- Membre
Re : Fonction avec intervalle
Si, on peut. Par contre, il faut utiliser une syntaxe différente (il ne comprend pas celle là):
Soit:
select DATE '4713-01-01 BC';
Soit:
select to_date('-4712-01-01','YYYY-MM-DD');
to_date
---------------
4713-01-01 BC
(1 ligne)
Parce qu'en plus on a la bonne blague, l'an 0, c'est '1 BC'
Par contre, 4713 BC c'est le plus bas où on puisse aller.
Marc.
Hors ligne
Pages : 1