php - 通过将时间戳转换为 unix 时间从 mysql 获取数据

标签 php mysql

这将使用 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/

相关文章:

mysql 替换为长文本列返回 NULL 值

javascript - 将背景颜色保存/检索到数据库

php - 如何在不使用文本字段的情况下将哈希存储在 MySQL 数据库中

php - 使用 PHP 将图像上传到数据库 (MySql)

javascript - 如何使用 PHP 变量运行 JavaScript

mysql - 我的 MySql 查询出了什么问题

mysql - 匹配调查数据库和成员(member)数据库

PHP 提交按钮不起作用。

php - 基本的PHP密码保护

php - 如何创建友好的日期格式(例如 "submitted 2 days ago")