# Round timestamp to the nearest minute, hour… in PostgreSQL

# Round timestamp to the nearest minute, hour… in PostgreSQL

There is no ROUND function for timestamps in PostgreSQL, that would round to the nearest time unit.
You can use `DATE_TRUNC()`

to truncate down the time, but it does never round up.

A trick is to add half of the time interval, and then apply `DATE_TRUNC()`

.

```
-- Round to the nearest minute
SELECT DATE_TRUNC('minute', '2021-06-01 12:31:56' + INTERVAL '30 second')
```

```
2021-06-01 12:31:00
```

It works for any PostgreSQL time interval:

```
-- Round to the nearest hour
SELECT DATE_TRUNC('hour', '2021-06-01 12:31:56' + INTERVAL '30 minute')
```

```
2021-06-01 13:00:00
```