2009-08-11 7 views
0

Comment écrire une requête pour trouver le décalage horaire?pgsql temps différence?

format de l'heure est comme celui-ci 2009-08-12 02:59:59

je veux comparer cette fois avec

2009-08-12 02:59:10

comment vérifier ces deux

Je veux retourner une ligne ayant la différence de temps est 30sec

comment écrire une instruction SQL ??

Répondre

2
select date_part('second',date1) - date_part('second',date2) 

dans SQL que vous pouvez faire comme ce qui vous donnent une sortie en secondes

+1

Je pense que cela ne fonctionne pas bien, car cela ne fonctionne que dans la même minute. La phrase renverra 0 si vous comparez 2009-08-12 02:59:59 et 2012-10-08 12:13:59 –

1
SELECT * FROM your_table WHERE time1_column - time2_column = interval '30s' 

Désolé, c'est le meilleur que je peux faire, étant donné votre description du problème ...

+0

Je crois que vous devrez aussi prendre l'intervalle '-30s', dans le cas où time2_column est plus grand que time1_column. – Paul

0

si les deux temps sont des colonnes dans la table de base de données, vous pouvez directement utiliser opérateurs relationnels (>, < et =) . si vous avez une table comme Test ( id bigint, horodateur de début, horodatage de fin );

alors vous pouvez avoir des requêtes telles que select * from test où starttime> de fin etc ..

Si vous voulez comparer deux dates dans la requête, vous pouvez d'abord convertir le texte en temps, puis les comparer vous pouvez utiliser: la fonction datetime de pgsql voir: http://www.postgresql.org/docs/6.3/static/c10.htm pour plus de détails

Questions connexes