我想每天獲得註冊用戶的總量。目前我正在使用這個Mysql DATE_SUB(NOW(),INTERVAL 1天)24小時還是工作日?
$sql = "SELECT name, email FROM users WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastModified"
但我不確定這是否每天或每24小時工作?
例如,誰註冊的19小時前,用戶應當不予退還我就像今天的用戶(=星期二)
我想每天獲得註冊用戶的總量。目前我正在使用這個Mysql DATE_SUB(NOW(),INTERVAL 1天)24小時還是工作日?
$sql = "SELECT name, email FROM users WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastModified"
但我不確定這是否每天或每24小時工作?
例如,誰註冊的19小時前,用戶應當不予退還我就像今天的用戶(=星期二)
上次更改時間是,據推測,日期時間。要將其轉換爲日期,您可以簡單地將其包裝在DATE()中,即DATE(lastModified)
。 DATE()
返回當天00:00的日期時間值的日期部分。
SELECT
name,
email
FROM users
WHERE DATE(lastModified) = DATE(DATE_SUB(NOW() , INTERVAL 1 DAY))
以此來匹配WHERE
雖然是低效的,因爲所有的行會要求適用於他們DATE,所以它可能會掃描整個表。這是更有效的比較lastModified
你正在尋找的上限和下限,在此情況下> = 00:00 SUBDATE(NOW(),INTERVAL 1 DAY)
和NOW()
< 0點因此你可以使用之間讓你選擇給以下。
SELECT
name,
email
FROM users
WHERE lastModified
BETWEEN DATE(DATE_SUB(NOW() , INTERVAL 1 DAY))
AND DATE (NOW())
我想你需要
SELECT
name,
email
FROM users
WHERE DATE(lastModified) = DATE(NOW())
這有效地「輪僅日期」,因此將只匹配記錄「因爲午夜」。
請看這篇文章http://stackoverflow.com/questions/589652/add-2-hours-to-current-time-in-mysql – Lazyprogrammer 2017-01-05 14:07:37