Vous n'êtes pas identifié(e).
Bonjour,
je suis débutant sur pgScript et je ne parviens pas à
faire des opérations basiques avec les dates et la sauvegarde des valeurs dans des variables.
1) Je cherche à sauvegarder le temps système dans une variable sans utiliser le SELECT.
set @DATE1 = select (localtimestamp); -- Récupération de l'heure actuelle du système
print 'DATE10= ' + cast (@DATE1 as string);
Résulat: [PGSCRIPT ] DATE10= ("2013-12-06 15:38:22.499").
Les guillemets qui apparaissent m'empêchent de faire des opérations avec ces dates.
Si je fais une comparaison if ("2013-10-00 15:38:22.499") < DATE1 le résultat est toujours faux ce qui n'est pas vrai.
2) Même problème lorsque je veux extraire l'année pour concaténer, et constituer une autre date j'ai ce problème.
set @AAAA1 = SELECT EXTRACT(year FROM TIMESTAMP '@DATE1');
set @MM1 = SELECT EXTRACT(month FROM TIMESTAMP '@DATE1');
set @JJ1 = SELECT EXTRACT(DAY FROM TIMESTAMP '@DATE1');
SET @DATE10 = cast (@AAAA1 as string)+'-'+cast (@MM1 as string)+'-'+cast (@JJ1 as string)+' 23:59:00';
Le résultat donne: [PGSCRIPT ] DATE10 = ("2013")-("12")-("7") 23:59:00
ce résultat n'a rien à voir avec une date. Je souhaitais l'avoir au format '2013-12-07 23:9:00'.
D'avance, je vous remercie pour votre aide
Hors ligne
Bonjour,
Vous devriez faire plus simple, par exemple «SELECT to_char(localtimestamp,'YYYY-MM-DD 23:59:00');»
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour,
Vous devriez faire plus simple, par exemple «SELECT to_char(localtimestamp,'YYYY-MM-DD 23:59:00');»
Merci de votre réponse !
mais je ne vous ai pas bien compris car avec ou sans to_char dans ce code
set @DATE1 = SELECT to_char(localTIMESTAMP, '2001-03-02 23:59:00') ;
set @DATE0Min = SELECT TIMESTAMP '2001-03-02 23:59:00';
j'obtiens le même résultat [PGSCRIPT ] ("2013-12-04 22:09:00")
Ma question concerne:
1- L'extraction des données si cette formule n'est pas correcte
set @AAAA1 = SELECT EXTRACT(year FROM TIMESTAMP '@DATE1');
2- La concaténation des données sans qu'il y'ai ("2013")
SET @DATE10 = cast (@AAAA1 as string)+'-'+...
avec la formule appropriée
3- L'addition des datesheures. cette formule semble bien fonctionner:
set @DATE0Min = SELECT TIMESTAMP '@DATE0' + interval ' 2 day';
4- le tout SAUVEGARDE DANS UNE VARIABLE qu'on peut manipuler (additionner les minutes).
set @DATE0Min = ....
.
Je vous remercie d'avance
Hors ligne
La requête en question était à utiliser tel quel :
set @LADATE = SELECT to_char(localtimestamp,'YYYY-MM-DD 23:59:00');
print 'date : ' + cast(@LADATE as string);
set @LADATE2 = SELECT TIMESTAMP '@LADATE' + interval ' 2 day';
print @LADATE2 ;
Mais encore une fois, pgscript n'est pas forcément la meilleure solution, étant donné que cela ne marchera qu'avec pgAdmin. Idéalement utilisez une seule requête pour obtenir votre résultat, et si ce n'est pas possible, utilisez plutôt une procédure stockée (ou une fonction anonyme si vous êtes au moins en 9.0 : http://docs.postgresql.fr/9.0/sql-do.html ).
Julien.
https://rjuju.github.io/
Hors ligne
Merci de la précision !
ça répond à ma question.
Hors ligne