Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
je ne connais pas le PSQL et je m'efforce de trouver une solution pour me faciliter la vie sur un autre logiciel qui récupère des informations au sein de l'une de ses tables.
Dans ma table PSQL se trouve une colonne "Date" qui contient le timestamp au format epoch (avec fuseaux horaire me semble t'il car 13 chiffres) et une autre colonne "hexa" comprenant une suite de caractères en héxadécimal. Je cherche à sélectionner toutes les lignes dont la colonne "date" daterait de plus de 24 heures, et d'insérer la valeur "0" dans la colonne "hexa" pour les lignes correspondantes.
je suis donc parti sur une commande du type
UPDATE table
SET hexa='0'
WHERE ???
Et pour la condition après le where je cherche toujours... si une personne a une idée et pourrait m'aiguiller, je ne pourrais que lui en être reconnaissante.
Hors ligne
j'ai trouvé une commande du type "select to_timestamp(1455026833295);".
Elle affiche la date correcte si j'enlève les trois derniers chiffres, qui correspondent je suppose au fuseau horaire. Ca me donne envie de récupérer uniquement les 10 premiers caractères de la colonne "Date". J'ai bien trouvé une commande du type substring mais je ne vois pas comment l'insérer également. Me resterait encore à le comparer à la date J-1
Hors ligne
Bonjour,
Voir la partie epoch dans la documentation : http://docs.postgresql.fr/9.4/functions-datetime.html
Pour vérifier le format du champ contenant un epoch :
SELECT timestamp with time zone 'epoch' + champ_epoch * interval '1 second';
SELECT timestamp with time zone 'epoch' + champ_epoch /1000 * interval '1 second';
Puis quelque chose comme
WHERE abs(extract('epoch' from now()) - champ_epoch) > 86400
(à vous de voir le format de votre champ)
Julien.
https://rjuju.github.io/
Hors ligne
Un grand merci julien,
en suivant vos conseils la commande suivante a parfaitement fonctionné:
UPDATE DATE
SET HEXA='0'
WHERE abs(extract('epoch' from now()) - (date /1000 * interval '1 second'))) > 86400;
Zeiklt
Hors ligne
Pages : 1