簡體   English   中英

php mysql select 日期從 1 天前到分鍾

[英]php mysql select date from 1 day ago, upto the minute

我想捕獲 24 小時前同一小時和分鍾發生的數據。 下面的公式不起作用。 真相是什么? 我將在一行中繪制日期范圍,而不是列出。

$now=time();
$24hrb=$now-(24*60*60);
$que = $connc->query("select * from table where datetime='$24hrb';")

在我看來,最好在 SQL 中完成這一切。 您可以使用 mysql interval s 選項減少 1 天,然后使用likesubstr來修剪秒數,僅通過分鍾值拉動日期時間。

select * from table where datetime like concat(substr((now() - interval 1 day), 1, 16), '%')

substr取自這樣的字符串:

2021/01/22 11:12:21
^              ^

並且concat在最后拋出通配符,因此之后的任何內容都匹配。 所以你的like被處理為:

2021/01/22 11:12%
$24hrb=time() - (24*60*60);

這是一個時間戳值。 但是你 state 在評論中:

是的。 日期時間格式 Ymd H:i:s

因此,如果您堅持使用此方法,您實際上應該做的是將您的datetime時間轉換為Unix 時間戳

$que = $connc->query("SELECT * FROM table 
       WHERE UNIX_TIMESTAMP(`datetime_column`) = '".(int)$24hrb."'");

這比搞亂連接和字符串操作要好得多,也更容易閱讀。

更遠,

您可以使用MySQL BETWEEN關鍵字擴展此操作,以便您可以獲得在時間范圍之間找到的值,例如 +/- 30 秒。 所以:

$que = $connc->query("SELECT * FROM table 
       WHERE UNIX_TIMESTAMP(`datetime_column`) 
       BETWEEN ".($24hrb - 30)." AND ".($24hrb + 30));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM