mysql数据库中sql语句取一段时间的每一天的最后一条数据?sql语句怎么写

比如下面的表取7月23号到7月28号这一段时间的每一天的最后一条数据sql语句该怎么写,还有时间不一定按顺序排列... 比如下面的表取7月23号到7月28号这一段时间的每一天的最后一条数据

sql语句该怎么写,还有时间不一定按顺序排列
展开
 我来答
低调小雄
2014-08-12 · 超过28用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:45.3万
展开全部
select aa.datetemp,max(aa.datetime) from (select date_format(datetime,'%Y-%m-%d') datetemp,datetime from 表名 ) aa group by aa.datetemp 这样应该可以获取到每天最大时间的这一条数据了。具体小部分修改你根据自己需求
追问
能不能先格式化一下
追答
啥意思
badkano
推荐于2016-02-16 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
select a.* from 表名 a,
(select max([datetime]) [datetime],convert(varchar(10),[datetime],120) [date] from 表名 group by convert(varchar(10),[datetime],120)) b
where a.[datetime]=b.[datetime]
and convert(varchar(10),a.[datetime],120)=b.[date]
更多追问追答
追问
看不清楚哪些datetime是字段,哪些datetime是类型,我把我图片上的datetime字段名改为key,麻烦您再写一下
追答
所有的datetime你都换成你字段名

date不换
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你好师姐
2014-08-12 · TA获得超过123个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:140万
展开全部
select * from tab a where key in
(select max(key) from tab b where convert(varchar(8),a.key,112) = convert(varchar(8),a.key,112))
更多追问追答
追问
运行了下,不行,还没分组
追答

每天取一个,就是这样取的。如果要取多条数据,可以采用下面的语法。

select * from tab a where key in
(select top 5 key  from tab b where convert(varchar(8),a.key,112) = convert(varchar(8),a.key,112) order by key desc )

 要不发一个远程,我帮你。
不好意思看错了,我看成了mssql,等一下,我改成 mysql的语法。

select * from tab a where key in
(select max(key) from tab b where cast(key as date) = cast(key as date) )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式