mysql - 如何在 where 子句中针对 unixtimestamp (bigint) 列使用 curdate()

标签 mysql unix-timestamp

我正在尝试提取过去 7 天的记录。这是我一直试图开始工作的选择语句:

select from_unixtime(time,'%m/%d/%y') as fdate, from_unixtime(time,'%h:%m:%s') as ftime
from mdl_log
where from_unixtime(time,'%y-%m-%d')  between curdate() and curdate() - INTERVAL 7 DAY

我尝试过 where 子句的各种形式,例如

where time between curdate() and curdate() - INTERVAL 7 DAY

where from_unixtime(time,'%yyyy-%mm-%dd')  between curdate() and curdate() - INTERVAL 7 DAY

where date(time) between curdate() and curdate() - INTERVAL 7 DAY

select curdate() - 结果以 2012-11-08 格式显示日期

最佳答案

你的最后一个化身几乎就在那里。但是,您需要将苹果与苹果进行比较。由于 time 是一个整数,您需要将其转换为 MySQL date/time functions使用。

WHERE DATE(FROM_UNIXTIME(time)) between CURDATE() and CURDATE() - INTERVAL 7 DAY

鉴于您的用例,您实际上只需要 FROM_UNIXTIME() :

WHERE FROM_UNIXTIME(time) between CURDATE() and CURDATE() - INTERVAL 7 DAY

关于mysql - 如何在 where 子句中针对 unixtimestamp (bigint) 列使用 curdate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293570/

相关文章:

mysql - 主机 <错误的主机> 不允许连接到此尝试部署 IIS ASP.NET 网站的 MySQL 服务器

PHP 服务器 ping 似乎导致 502 错误

php - 如何在 Joomla 3.0 或 PHP 中将多维数组保存到数据库

java - 使用java的纪元时间来更改文件的时间戳

php - UNIX 时间戳(0) : Europe/London returns UTC+1

php - 将字符串转换为 UNIX 时间戳

oracle - 在文本中查找 Unix 时间戳并替换为 sql

PHP MySQL GROUP_CONCAT 添加双引号

MySQL 可以选择文字表情符号但不会将表情符号存储到表中

c# - 将纪元/unix 转换为日期时间