SET @time := '2018-11-08 00:36:50.000000'; SET @intervalInMinutes := 15 SELECT FROM_UNIXTIME((Select FLOOR ((select UNIX_TIMESTAMP(@time) / (@intervalInMinutes* 60))) * (@intervalInMinutes*60)));
我需要在MySQL中编写一个查询,转换用户指定的最近间隔类别中的日期/时间。 示例:
例2:“2018-10-2417:36:20.000000”;
this post ,第一个答案有一条评论说 该方法将在夏时制之间的日期时间失败 另外,我希望这适用于MySQL 5.6、5.7和8.0。
在使用将datetime转换为unixtime并返回时,您可能会遇到的问题是很正常的 explained in MySQL database .
SET @time := '2018-11-08 00:36:50.000000'; SET @intervalInMinutes := 15; SELECT TIMESTAMP(DATE(@time), SEC_TO_TIME(FLOOR(TIME_TO_SEC(TIME(@time)) / (@intervalInMinutes * 60)) * (@intervalInMinutes * 60)));