如何显示和计算日期为昨天的值?
我使用 time()
在数据库中插入日期。示例:
URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314
我想显示表中存在多少个 URL,以及昨天访问了多少个 URL。示例结果:
LINK | timesExisted | timesVisitedYesterday
Google.com | 2 | 2
youtube.com| 3 | 3
我已经有了获取昨天日期的想法,但我不知道如何计算一个 URL 在昨天存在多少次,以及计算一个 URL 在表中存在多少次。
最佳答案
获取昨天日期的最简单和最好的方法是subdate :
subdate(current_date, 1)
您的查询将是:
SELECT
url as LINK,
count(*) as timesExisted,
sum(DateVisited between UNIX_TIMESTAMP(subdate(current_date, 1)) and
UNIX_TIMESTAMP(current_date)) as timesVisitedYesterday
FROM mytable
GROUP BY 1
出于好奇,sum(condition)
为您提供满足条件的行的 count 的原因,否则需要繁琐而冗长的 case
语句,在 mysql 中 bool 值是 1
代表真, 0
代表假,因此对条件求和有效地计算了它为真的次数。使用这种模式可以整理你的 SQL 代码。
关于MySQL选择昨天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7146828/