sql >> データベース >  >> RDS >> Mysql

MySQLでdatediffを数分で合計

    あなたの状態

    WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'
    

    ほぼ保証 残されるレコードはどこにあるか

    tStart = tEnd = '2011-04-04'
    

    言うまでもなく、それらの間のDATEDIFFは0を返し、総計は0になります。実際、DATEDIFFは無視します。 時間部分なので、TIMEDIFF + TIME_TO_SEC

    を使用する必要があります
    SELECT SUM(TIME_TO_SEC(TIMEDIFF(tEnd, tStart))/60)
    FROM tasks
    WHERE tStart >= '2011-04-04' AND tEnd <= adddate('2011-04-04', interval 1 day)
    

    WHERE句の変更に注意してください。あなたが言いたいのであれば、今日いつでも開始し、今日いつでも終了するなら、範囲は(すでに開始<終了を想定している)でなければなりません。

    WHERE tStart >= '2011-04-04'
      AND tEnd < adddate('2011-04-04', interval 1 day)
    

    2011-04-05にハードコーディングできますが、<を使用します (未満)そして、終了制限に1日を追加することが、ここで示しているものです。




    1. PostgreSQLで序数を作成する方法

    2. 日付範囲が存在することを確認するにはどうすればよいですか

    3. Oracleクリティカルパッチアップデート–2020年10月

    4. ウェブサイト全体のログインとしてのvBulletin(編集:ある程度の進歩がありました)