2016-04-13 3 views
0

Ich habe CAST verwendet, um eine Datetime zu runden, aber jetzt möchte ich die Datetime auf den nächsten Tag runden.SQL Netezza - Wie richte ich Datetime zum nächsten Tag

Zum Beispiel Wenn mein Datetime ist '2012-10-27 21: 11: 19: 207', möchte ich abzurunden '2012-10-28' Aber wenn mein Datetime ist '' 2012-10 -27 09: 11: 19: 207 ', ich möchte auf' 2012-10-27 'runden.

Ich habe googeln und suchen, konnte aber keine Antwort finden. Bitte helfen Sie.

+0

Pflege zu erklären, warum Sie Daten abrunden wollen ? Normalerweise würde man das Datum so nehmen wollen wie es vom Zeitstempel ist. – Munir

+0

'date_trunc ('tag', col)' - Zumindest macht Postgres das so. –

+0

In meiner Situation gibt es eine Aufzeichnung von Daten jedes Mal, wenn eine Änderung an einem Profil eines Antragstellers ist. Also, wenn ich genau angeben möchte, welcher Datensatz zu einem bestimmten Zeitpunkt für einen Bewerber zu sehen ist, wenn ich nur die Datetime nehme, könnte ich zwei Datensätze betrachten. Ich bin mir nicht sicher, ob das irgendeinen Sinn macht. – TorontoUser

Antwort

1

Nun, wenn Sie die auf den nächsten Tag abrunden wollen, anstatt auf das aktuelle Datum gestutzt, könnten Sie etwas Fall Logik wie folgt tun:

select 
     current_timestamp, 
     case 
       when current_timestamp - date_trunc('day',current_timestamp) < '12 hours'::INTERVAL 
       then date_trunc('day',current_timestamp) 
       else date_trunc('day',current_timestamp) + '1 day' ::interval 
     end ROUNDED_DATE; 


TIMESTAMP   ROUNDED_DATE   
------------------- ------------------- 
2016-03-18 09:00:21 2016-03-18 00:00:00 
Verwandte Themen