You can create a custom MySQL function and procedures with the following signatures.
- CREATE FUNCTION ToUpper15 (dateParam DATETIME)
- CREATE FUNCTION ToLower15 (dateParam DATETIME)
- CREATION PROCEDURE AddIntervalMinutes (startdate DATETIME, enddate DATETIME, int interval)
Here is an example of some pseudo MySQL code, I never programmed MySQL, I tried to look for documentation and its terrible, otherwise it is really a 30-minute task if you can find the language syntax documentation.
Keep in mind
- When you round for more than 45 minutes, you round to the next hour.
- Do the same with ToLower15
- Use the AddTime () system function to execute a 15 minute interval
Below you can do it
CREATE FUNCTION ToUpper15(dateParam DATETIME) RETURNS DATETIME DETERMINISTIC BEGIN DECLARE dateYear INT; DECLARE dateMonth INT; DECLARE dateDay INT; DECLARE dateHour INT; DECLARE dateMinute INT; SET dateYear = YEAR(dateParam); SET dateMonth = MONTH(dateParam); SET dateDay = DAY(dateParam); SET dateHour = HOUR(dateParam); SET dateMinute = MINUTE(dateParam); IF (dateMinute >= 0 AND dateMinute < 15) THEN SET dateMinute = 15; ELSEIF (dateMinute >= 15 AND dateMinute < 30) THEN SET dateMinute = 30; ELSEIF (dateMinute >= 30 AND dateMinute < 45) THEN SET dateMinute = 45; ELSEIF (dateMinute >= 45 AND dateMinute < 60) THEN BEGIN SET dateMinute = 0; SET dateHour = dateHour + 1; END END IF; RETURN CONCAT(dateYear, '-', dateMonth, '-', dateDay, ' ', dateHour, ':', 'dateMinute'); END
source share