QueryDSL-如何使用mysql函数

本文介绍如何使用MySQL的DATE_FORMAT和FROM_UNIXTIME函数将时间戳转换为日期格式,并按小时或分钟进行分组统计。通过具体SQL语句展示,适用于需要处理大量时间戳数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个模拟的是mysql的DATE_FORMAT(date,format)和FROM_UNIXTIME()函数的一起使用,因为项目中一个发布时间的设定是时间戳,所以需要使用FROM_UNIXTIME()来把时间戳转化。

实现业务逻辑:
按照小时分组统计的功能
SELECT 
    DATE_FORMAT(FROM_UNIXTIME(publish_time/1000),'%Y-%m-%d %H') publish_time,COUNT(id) totole
FROM _trends_content
WHERE  publish_time >= 1563983000528
GROUP BY DATE_FORMAT(FROM_UNIXTIME(publish_time/1000),'%Y-%m-%d %H')

如果要按每分钟统计的话,参数要改成%Y-%m-%d %H:%i:00

统计结果如下

在这里插入图片描述

使用querydsl的stringTemplate模板
StringTemplate from_unixtime = Expressions.stringTemplate("FROM_UNIXTIME({0}/1000)",QContent.publishTime);
StringTemplate time_format = Expressions.stringTemplate("DATE_FORMAT({0},'%Y-%m-%d %H')",from_unixtime);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值