2

我希望能够通过以下方式创建时间:例如,如果 now() 在 09:00:00 到 09:29:00:00 之间,那么新时间将是 09:30:00。如果 now() 在 09:30:00 到 09:59:00 之间,那么新时间将是 10:00:00。

知道怎么做吗?

4

2 回答 2

0

以下查询可能对您有所帮助

SELECT CASE WHEN DATE_FORMAT(current_timestamp(), '%i')  > 31 
                 and DATE_FORMAT(current_timestamp(), '%i')  < 59 
            WHEN 
                 CONCAT (DATE_FORMAT(current_timestamp(), '%H') + 1 , ':00:00' ) 
            ELSE CONCAT (DATE_FORMAT(current_timestamp(), '%H') , ':30:00' )  
            END;
于 2013-10-30T08:15:12.880 回答
0

如何在 MySQL 中舍入日期时间?

当您使用日期时间数据类型时,这有点令人讨厌;存储函数的一个不错的候选者。

DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time), 30) MINUTE), 
         INTERVAL SECOND(time) SECOND)

使用 UNIXTIME 时间戳会更容易,但仅限于 1970 - 2038 日期范围。

FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time), 1800))

祝你好运。

于 2013-10-30T08:07:52.457 回答