这将使用 PHP 完成。
我基本上想获取 30 分钟前插入的行数。
我的表上有一个类型为 TIMESTAMP 的时间字段,在更新时它被设置为 CURRENT_TIMESTAMP。
日期以这种格式存储:
2011-05-27 04:29:17
我的查询应该看起来像这样,但我做不到
SELECT COUNT(*) FROM mytable WHERE UNIX_TIMESTAMP(time) < '.time().'-1800
其中 time() 是获取 UNIX 时间的 PHP 函数。
它基本上应该做的是打印从现在到 30 分钟前插入的行数,但我似乎无法让它工作。
有人可以帮忙吗?
小编辑: 我看到的另一个问题是 php 的函数 time() 显示的是 UTC 的 unix 时间。存储在 mysql 中的时间可能是格林威治标准时间,即我的计算机的时间/时区设置为什么。
最佳答案
您可以轻松地获取从现在到 30 分钟
之前存储的行,只需使用:
SELECT count(*) FROM mytable WHERE `time` >= DATE_SUB(UTC_TIMESTAMP, INTERVAL 30 minute)
UTC_TIMESTAMP
的使用只是一个示例,如果您将日期/时间数据存储为 UTC_TIMESTAMP()
,您可能可以使用 NOW()
如有必要,取决于您实际存储的内容。
**编辑** 删除了错误的指针并修复了示例:)
关于php - 通过将时间戳转换为 unix 时间从 mysql 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162426/