2016-04-13 5 views
0

Я использую CAST для округления даты и времени, но теперь я хочу округлить дату и время до ближайшего дня.SQL Netezza - Как округлить дату и время до ближайшего дня

Например, Если моя дата и время является '2012-10-27 21: 11: 19: 207', я хочу округлить '2012-10-28' Но если моя дата и время является '' 2012-10 -27 09: 11: 19: 207 ', я хочу округлить до' 2012-10-27 '.

Я искал поисковые запросы, но не нашел ответа. Пожалуйста помоги.

+0

уход объяснить, почему вы хотите, чтобы закруглить даты ? Обычно нужно было бы принять дату, как это указано в timestamp. – Munir

+0

'date_trunc ('day', col)' - По крайней мере, так поступает Postgres. –

+0

В моей ситуации есть запись данных каждый раз, когда происходит изменение профиля заявителя. Итак, если я хочу точно указать, какую запись посмотреть для заявителя в определенное время, если я просто возьму дату и время, я могу посмотреть на две записи. Я не уверен, что это имеет смысл. – TorontoUser

ответ

1

Ну, если вы хотите округлить до ближайшего дня, а не укоротить до текущей даты, вы могли бы сделать некоторые дела логики так:

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 
Смежные вопросы