Ana Ana - 1 year ago 59
SQL Question

MYSQL Round the datetime to 15 minute

I want to update the datetime round to 15 minutes in a MYSQL database table.

For Example:

If the dateTime is

2013-10-08 10:36:00
, I want to convert it into
2013-10-08 10:30:00

2013-10-08 10:22:00
2013-10-08 10:15:00

I have seen this answer but it converts datetime into seconds and return time only, I want date as well.


Ali Ali
Answer Source

The answer you have seen is quite useful, try this

SELECT SUBSTRING_INDEX(datetime_field, ' ', -1) AS old_time,SEC_TO_TIME((TIME_TO_SEC(datetime_field) DIV 900) * 900) AS rounded_time, datetime_field FROM yourtable

You can get time from the datetime_field as substring and replace it with the rounded time.

if you want to update the datetime you can reply it and update it with update function

UPDATE yourtable SET `datetime_field` =  REPLACE(datetime_filed,SUBSTRING_INDEX(datetime_field, ' ', -1),SEC_TO_TIME((TIME_TO_SEC(datetime_field) DIV 900) * 900))

I hope that helps...