PostgreSQL'de saniye cinsinden zaman damgaları arasındaki farkı bulun


127

Ben bir tablo var PostgreSQL 8.32 ile timestampsütunlar. timestampsSaniyeler içinde bunların arasındaki farkı öğrenmek istiyorum . Bunu nasıl yapacağıma yardım eder misin lütfen?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)

(timestamo_B - timestamp_A)Saniyeler gibi bir şey elde etmem gerekiyor (sadece saniyeler arasındaki fark değil, saatleri, dakikaları vb . İçermelidir) .

Yanıtlar:


239

Deneyin: 

SELECT EXTRACT(EPOCH FROM (timestamp_B - timestamp_A))
FROM TableA

Ayrıntılar burada: ÖZÜT .


3
Cevap için çok teşekkürler. İşe yaradı !!! Yukarıdaki sorguda bir kapanış parantezi eksik. Ama anladım. Hızlı cevabınız için çok teşekkürler.
Arun

30
select age(timestamp_A, timestamp_B)

Igor'un yorumuna cevap vermek:

select age('2013-02-28 11:01:28'::timestamp, '2011-12-31 11:00'::timestamp);
              age              
-------------------------------
 1 year 1 mon 28 days 00:01:28

İşi yapmayacak. Olacak Subtract arguments, producing a "symbolic" result that uses years and months. Saniyeler içinde fark yaratmaz.
Igor Romanchenko

@Igor Saniyeler dahil sonuçlarla güncellendi. OP sadece saniyeleri değil, dakikaları, saatleri vb. İstiyor
Clodoaldo Neto

5
Onu doğru anladıysam, istiyor to get the difference between these timestamps in seconds. Ve it should include hours, minutes etctam fark gibi olması gerektiği anlamına gelir 10:25:30 - 10:15:25 = 605 seconds. Benim tahminim - kullandı EXTRACT(SECONDS FROM ...)ve aldı10:25:30 - 10:15:25 = 5 seconds
Igor Romanchenko

1
@Igor Çok net değil ama şimdi söylediğinize göre muhtemelen haklısınız.
Clodoaldo Neto

@Clodoaldo: Igor'un belirttiği gibi çıktıya ihtiyacım var. Saniyeler içinde tam farka ihtiyacım var.
Arun

0
SELECT (cast(timestamp_1 as bigint) - cast(timestamp_2 as bigint)) FROM table;

Birisi özü kullanırken sorun yaşıyorsa .


Saat dilimleriyle birlikte zaman damgası ile de çalışmaz.
Rodolfo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.