如何使用对unixtimestamp条款(BIGINT)的列,其中CURDATE()(how to

2019-10-17 09:11发布

我想拉在过去7天的记录。 这是我的,我一直在试图去工作的SELECT语句:

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

以这种格式在2012年11月8日的日期显示结果 - 选择CURDATE()

Answer 1:

你几乎有你最后的化身。 但是,你需要比较苹果苹果。 由于time是一个整数 ,你需要将其转换为MySQL的日期/时间函数使用。

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


文章来源: how to use curdate() in where clause against unixtimestamp (bigint) column