您可以使用以下签名创建自定义 MySQL 函数和过程。
- 创建函数 ToUpper15 (dateParam DATETIME)
- 创建函数 ToLower15 (dateParam DATETIME)
- CREATE PROCEDURE AddIntervalMinutes (startdate DATETIME, enddate DATETIME,interval INT)
这是一些伪MySQL 代码的示例,我从未编写过 MySQL,我试图寻找文档和它的可怕之处,否则这真的是一个 30 分钟的任务,如果你能找到语言语法的文档。
记住
- 当您四舍五入超过 45 分钟时,您将四舍五入到下一个小时
- 对 ToLower15 执行相同操作
- 使用系统函数 AddTime() 做 15 分钟的间隔
以下是您可以如何执行此操作
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