Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 14/06/2011 15:45:46
- Jean-Marie
- Membre
passer du type timestamp à un entier
Bonjour
j'ai des enregistrements chacun ayant un champ date de type timestamp dans le format yyyy-mm-dd hh:mm:ss ;
je voudrais faire des requêtes sur ce champ mais en me basant sur un entier correspondant au nombre de secondes depuis le 01/01/1970
donc par exemple au lieu d'écrire
select date, x(coord), y(coord) from table where date between '2011-06-14 05:40:00' and '2011-06-14 09:58:38';
je voudrais arriver à une requête du genre
select date, x(coord), y(coord) from table where (date > 1308030000 and date < 1308045518);
comment puis-je m'y prendre ?
merci d'avance
Jean-Marie
Hors ligne
#2 14/06/2011 15:47:50
- Marc Cousin
- Membre
Re : passer du type timestamp à un entier
la fonction à utiliser est extract:
extract(epoch from mon_timestamp)
Marc.
Hors ligne
#3 14/06/2011 17:43:40
- Jean-Marie
- Membre
Re : passer du type timestamp à un entier
ok merci bien
la commande devient ainsi :
select date from table where extract(epoch from date) > 1308030000 and extract(epoch from date) < 1308045518;
Hors ligne
#4 15/06/2011 08:51:40
- SQLpro
- Membre
Re : passer du type timestamp à un entier
En écrivant votre requête ainsi, vous rendez le prédicat non "sargable", car vous obligez la colonnes à une transformation via une fonction, ce qui empêche toute utilisation d'index.. Vous aurez donc des performances de plus en plus mauvaise au fur et à mesure de la montée en charge...
Préférez faire l'inverse : calculez le TIMESTAMP des bornes à l'aide d'une fonction....
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne
#5 15/06/2011 09:37:23
- gleu
- Administrateur
Re : passer du type timestamp à un entier
Plutôt d'accord avec SQLpro, en dehors du terme sargable que je ne connais pas. Ça veut dire quoi ?
Guillaume.
Hors ligne
#6 15/06/2011 09:48:54
- Marc Cousin
- Membre
Re : passer du type timestamp à un entier
Ça veut juste dire «utilisable par un index».
Marc.
Hors ligne
#7 15/06/2011 18:24:33
- Jean-Marie
- Membre
Re : passer du type timestamp à un entier
ok merci pour vos remarques
JM
Hors ligne
Pages : 1