Ich mache etwas Arbeit, die Zeitreihendaten von den verschiedenen Tabellen zusammenbringt. Als Beispiel dieser Tabellenspalten für 1 Sekunde Zeitreihe hat und eine Spalte ‚nächste Stunde‘ wie:Postgresql WHERE timea = timeb, wie die Genauigkeit angeben?
"datetime" "closesthourdatetime"
"01/01/2005 00:30:00" "01/01/2005 01:00:00"
"01/01/2005 00:30:01" "01/01/2005 01:00:00"
"01/01/2005 00:30:02" "01/01/2005 01:00:00"
Wenn ich
SELECT time_series_only.closesthourdatetime
FROM measdata.time_series_only
WHERE time_series_only.datetime = time_series_only.closesthourdatetime
ich nicht bekommen alle Ergebnisse laufen würde ich gehofft, im Gegensatz zum Laufen
SELECT DISTINCT time_series_only.closesthourdatetime
FROM measdata.time_series_only
wo ich mache.
Ich vermute, das ist weil pgsql datetimes sind eigentlich numerische Werte mit den Zeiten als Teil eines Tages, so dass die Millisekunden möglicherweise nicht genau übereinstimmen, was mir egal war.
Gibt es eine Möglichkeit, dies zu fragen, aber geben Sie zur nächsten Sekunden- oder Minuten WHERE time_series_only.datetime = time_series_only.closesthourdatetime ohne verworren und vermutlich langsam Abfrage wie folgt? :
SELECT DISTINCT time_series_only.closesthourdatetime
FROM measdata.time_series_only
--WHERE
--time_series_only.datetime = time_series_only.closesthourdatetime
/*EXTRACT (YEAR FROM time_series_only.datetime) = EXTRACT(YEAR FROM time_series_only.closesthourdatetime)
AND EXTRACT (MONTH FROM time_series_only.datetime) = EXTRACT(MONTH FROM time_series_only.closesthourdatetime)
AND EXTRACT (DAY FROM time_series_only.datetime) = EXTRACT(DAY FROM time_series_only.closesthourdatetime)
AND EXTRACT (HOUR FROM time_series_only.datetime) = EXTRACT(HOUR FROM time_series_only.closesthourdatetime)
AND EXTRACT (MINUTE FROM time_series_only.datetime) = EXTRACT(MINUTE FROM time_series_only.closesthourdatetime)
AND EXTRACT (SECOND FROM time_series_only.datetime) = EXTRACT(SECOND FROM time_series_only.closesthourdatetime)
'DATE_TRUNC()' kann das tun, was Sie wollen. –
Was ist die nächste Stunde für '01/01/2005 00: 29: 59'? Ist es abgerundet oder hoch? –
01.01.2005 00:29:59 würde abgerundet werden – SolarBrian