Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Minutes incrémentées de 2mn


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre expérimenté
    Minutes incrémentées de 2mn
    Bonjour à tous,

    Je cherche à extraire l'heure à partir d'une variable date: '2019-03-27:23:59' et incrémenter par pas de 2mn.

    J'ai utilisé quelque chose du style : Interval ' 2 minutes' mais ça ne marche pas. Merci d'avance de votre aide

  2. #2
    Modérateur

    Votre variable date ne ressemble pas à grand chose en l'état.
    Il faut la convertir en timestamp, et après vous pourrez rajouter deux minutes :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    select to_timestamp('2019-03-27:23:59', 'yyyy-mm-dd:hh24:mi') + interval '2 minutes';
     
    2019-03-28T00:01:00Z

  3. #3
    Membre expérimenté
    Bonjour Waldar,

    Merci de m'avoir répondu. En fait ma variable est au format : 2019-03-27 07:42:56+01

    J'ai testé : (utc_observation + interval '2 minutes') as X avec un group by X mais ça ne marche pas. J'ai une incrémentation à la minute ;(

  4. #4
    Modérateur

    Ok je crois devenir où vous voulez en venir, vous souhaité faire un agrégat avec deux minutes d'intervalle à chaque ligne c'est bien ça ?
    Postez le DDL de votre table, une dizaine de lignes, et le résultat attendu (afin d'être sûr).

  5. #5
    Membre expérimenté
    Voici ma requête:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select  	
        numero_course,
    	date_trunc('minute',utc_observation - date_trunc('day', utc_observation)),
    count(*) as nb
    from positions pos left join courses cour
    	on cour.id_positions=pos.id
       where  utc_observation between '2019-02-05:00:00' and '2019-02-05:23:59'
       and numero_course='164661'
       group by 
     
        numero_course,
        date_trunc('minute',utc_observation - date_trunc('day', utc_observation))
        order by date_trunc('minute',utc_observation - date_trunc('day', utc_observation))


    J'ai agrégé par numero_course et surtout date_trunc('minute',utc_observation - date_trunc('day', utc_observation)).

    Ce qui me donne le résultat en pièce jointe. Mais j'aimerais le faire par pas de 2mn, dans l'exemple j'amerais regrouper 07:39 et 07:41 ==> nb=2

    la variable utc_observation=2019-02-05 07:39:34+01 par exemple