gpt4 book ai didi

mysql - SQL 选择每天的最后一个时间戳

转载 作者:行者123 更新时间:2023-11-29 00:10:04 29 4
gpt4 key购买 nike

我正在尝试将时间戳列表减少到每天的最后一个。

我可以使用以下 SQL 提取我正在寻找的时间戳,但我也将这些转换为格式化日期,我不想这样做。

select
from_unixtime(intTimeStamp) as day
from
(
select distinct intTimeStamp from TableA order by intTimeStamp desc
) as t2
group by
date(day)
order by
intTimeStamp desc

这是输出:

2014-08-29 13:21:01
2014-08-28 13:21:01
2014-08-27 13:21:01
2014-08-26 13:21:01
2014-08-25 13:21:21
2014-08-22 10:11:01
2014-08-21 13:21:01
2014-08-20 13:21:01
[remaining omitted]

这是预期的,但我需要它们的原始 unixtime 格式。

但是,简单地删除 from_unixtime() 函数会产生非常奇怪的行为。它只返回 6 行,而不是预期的 168。我注意到返回的六行中只有一行是当天的最后一个时间戳。它跳过了 95% 的带有可用时间戳的日子,但我不确定为什么。

select
intTimeStamp as day
from
(
select distinct intTimeStamp from TableA order by intTimeStamp desc
) as t2
group by
date(intTimeStamp)
order by
intTimeStamp desc

这是输出:

1409343661
1409170501
1406060101
1401221701
1400271301
1400012101

EXPLAIN 两者的输出:

1   PRIMARY <derived2>  ALL                 13338   Using temporary; Using filesort
2 DERIVED TableA range PRIMARY 4 10 Using index for group-by; Using temporary; Using filesort

我如何才能像第一个查询那样只检索每天的最后一个时间戳,而不必将它们从 unix 时间戳转换(或至少将它们输出为一个)?

谢谢。

最佳答案

你可以用一个简单的group by来做到这一点:

select max(intTimeStamp) as lasttimestamp
from TableA
group by date(from_unixtime(intTimeStamp))
order by lasttimestamp desc;

关于mysql - SQL 选择每天的最后一个时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596308/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com