0

データベースの日付列の形式はdate('Y-M-j H:i:s');. 今日完了したすべてのトランザクションと、昨日完了したすべてのトランザクションを取得するクエリを実行しようとしています。これを行うための最良の方法を手伝ってください。

以下を試しましたが、うまくいきませんでした

 $yesterday = date("Y-M-j 00:00:01", strtotime("-1 day"));
$yesterday2 = date("Y-M-j 23:59:59", strtotime("-1 day"));

$query_syesterday = "SELECT sum(amount), sum(amtnaira) FROM transactions WHERE transtype = 'buy' AND batch !='' AND date BETWEEN '$yesterday' AND '$yesterday2'";
$syesterday = mysql_query($query_syesterday, $egold1) or die(mysql_error());
$row_syesterday = mysql_fetch_assoc($syesterday);
$totalRows_syesterday = mysql_num_rows($syesterday);
4

3 に答える 3

2

これはそれを行う必要があります:

$query_last_two_days = "SELECT sum(amount), sum(amtnaira) 
   FROM transactions 
      WHERE transtype = 'buy' 
        AND batch !='' 
        AND date < DATE_SUB(NOW(), INTERVAL 2 DAY)";

このように簡単に過去 2 日間を取得できます。NOW()ご希望の日時に変更可能です。

于 2012-09-05T00:28:43.953 に答える
1

これを試して:

$yesterday= date("Y-m-d", time()-86400)." 00:00:00";
$yesterday2= date("Y-m-d", time()-86400)." 23:59:59";
于 2012-09-04T23:39:01.520 に答える
1

間違った日付形式を使用しています。代わりにこれを使用してください:

$yesterday = date("Y-m-d", strtotime("-1 day"));

また、時刻ではなく日付を比較してください。

SELECT SUM(amount), 
       SUM(amtnaira) 
FROM   transactions 
WHERE  transtype = 'buy' 
       AND batch != '' 
       AND DATE(date) = $yesterday
于 2012-09-04T23:40:51.900 に答える