我正在实现一个聚合统计表,它将包含存储在另一个表中的实时数据的每分钟聚合。要做到这一点,我相信我需要一种方法从一分钟开始 datetime
.
e、 g.如果datetime是 dt='2020-06-08 21:20:33'
,我需要一个函数 F(dt)='2020-06-08 21:20:00'
,这样我就可以打开它了 NOW()
在查询中。
到目前为止,由于datetime字符串datetime route,我可以想到以下可能比较慢的方法:
SELECT STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H%i00'), '%Y%m%d%H%i%S') AS MinuteBeginning
你能帮我找到一个更有效的解决方案吗,也许是一个存储过程?如果mysql解决方案不同于mariadb,则后者是首选方案。
2条答案
按热度按时间pod7payv1#
如果y2038是一个问题,字符串操作是另一个选择:
h79rfbju2#
您还可以使用unix时代:
整数运算应该快一点。不过,在聚合查询中,数据洗牌通常比其他操作要昂贵得多。