php mysql按天检索记录,我想从表格中检索所有记录,这些记录是使用php mysql在24小时后发布的(I want to retrieve all the records from a tab...

我想从表格中检索所有记录,这些记录是使用php mysql在24小时后发布的(I want to retrieve all the records from a table which were posted 24 hours back using php mysql)

我想从表格中检索所有记录,这些记录是使用php mysql在24小时后发布的。 我可以使用datetime列获取最近24小时插入的记录。 但我想要的记录插入表中,并完成24小时发布。

请大家帮帮我!

I want to retrieve all the records from a table which were posted 24 hours back using php mysql. I can able to get last 24 hour inserted records using datetime column. But i want the records which were inserted into table and completed 24 hours from posting.

Please guys help me out!

原文:https://stackoverflow.com/questions/42330054

更新时间:2019-12-28 03:48

最满意答案

假设“日期”是你的日期时间列,“mytable”是你的表

SELECT * FROM mytable WHERE date <= DATE_SUB(NOW(), INTERVAL 24 HOUR)

Assuming that "date" is your datetime column and "mytable" is your table

SELECT * FROM mytable WHERE date <= DATE_SUB(NOW(), INTERVAL 24 HOUR)

2017-02-19

相关问答

您的日期已经有一个下限,但由于您的表可能有未来的日期,您还需要一个上限。 这应该工作: SELECT *

FROM my_table

WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)

AND date <= NOW()

You already have a lower limit on the date, but since your table can have future dates you also need an upper limit.

...

SELECT *

FROM table_name

WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

SELECT *

FROM table_name

WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

假设“日期”是你的日期时间列,“mytable”是你的表 SELECT * FROM mytable WHERE date <= DATE_SUB(NOW(), INTERVAL 24 HOUR)

Assuming that "date" is your datetime column and "mytable" is your table SELECT * FROM mytable WHERE date <= DATE_SUB(NOW(), INTERVAL 24 HOUR)

您可以在表中添加列ts ALTER TABLE core

ADD COLUMN ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

这是一个时间戳,每次插入或更新行时,都会自动设置为机器上的当前时间。 然后你可以做 SELECT id, name, password FROM core

WHERE TIMESTAMPDIFF(HOUR, ts, NOW()) < 24;

它应该返回在过去24小时内添加或更新的

...

一个相当痛苦的方式来做到这一点(性能明智的)是与join / group by或apply运营商。 从性能角度来看, apply应该更好: select t.*

from t cross apply

(select count(*) as cnt

from t t2

where t2.iduser = t.iduser and

t2.creationdate >= t.creationdate and

t2.crea

...

不要在PHP中检查它,使用这样的简单查询来直接从数据库中获取答案。 select

count(*)

from

yourTableName

where

dateCol>date_sub(now(), interval 1 day)

and userID=...

这将给你计数。 编辑:正如鲍里斯指出的那样,这将计算每天,您可以更改它以检查最后24小时的时间段,如下所示: select

count(*)

from

yourTableNa

...

获取客户端的IP地址,并在记录不存在时将其与当前日期和时间一起存储。 获取记录并将24小时添加到其日期和时间值,并在每次执行脚本时使用当前日期和时间进行检查。 您需要if else条件语句来检查24小时时间是否结束。 基于此,您将控制您想要的功能的执行。 我想我不想写很多理论。 在这里,我编写了代码看起来像这样的模式: if(!$record_in_db) {

// create record with the client's ip address and the current dat

...

要获得最近24小时,请将1天前的时间转换为unix时间戳: UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))

要将时间戳转换回一小时,请先将其转换为时间,然后使用HOUR函数: HOUR(FROM_UNIXTIME(time))

结合这些,你可以做到: SELECT HOUR(FROM_UNIXTIME(time)) AS hour, COUNT(*)

FROM service_data

WHERE time >= UNIX_TIMESTAMP(D

...

以下是每10分钟数据获取一行的方法: select date(date_time), hour(date_time), floor(minute(date_time) / 6),

avg(active_energy)

from energy_readings

where date_time >= '2016-11-02' and datetime < '2016-11-03'

group by date(date_time), hour(date_time), floor(minut

...

SELECT * FROM stats WHERE STR_TO_DATE(timespan,"%W, %b %d %Y, %h:%i:%s %p") >= date_sub(now(), INTERVAL 1 DAY)

STR_TO_DATE会将您的字符串转换为日期格式(Ymd H:i:s)然后您可以将它与now()返回的日期进行比较 SELECT * FROM stats WHERE STR_TO_DATE(timespan,"%W, %b %d %Y, %h:%i:%s %p") >= d

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值