3
SELECT *
FROM `summary`
WHERE submit_date = curdate()
AND submit_date > '06:00'
AND submit_date < '21:00'
LIMIT 0 , 30

これは今日を含むすべての日付を引っ張っていますか? submit_date は DATETIME があることを示す列であり、本来あるべきようにそれらを除外していません。私は何が欠けていますか?ありがとう!

4

2 に答える 2

2

2つの制限条件はTIME()、それがDATETIME列の場合に返される値と比較する必要があり、最初の条件はそのDATE()部分のみに制限する必要があります。

SELECT *
FROM `summary`
WHERE
  /* Truncate to the date only to compare against CURDATE() */
  DATE(submit_date) = curdate()
  /* And truncate to the TIME() to compare against these time literals. */
  /* note also that the time literals may need seconds as well */
  AND TIME(submit_date) > '06:00:00'
  AND TIME(submit_date) < '21:00:00'
LIMIT 0 , 30
于 2012-10-22T02:51:13.923 に答える
0

次のように、submit_dateの日付部分を現在の日付の日付部分、次に時間部分と比較する必要があります。

SELECT *
FROM `summary`
WHERE 
    DATE(submit_date) = curdate()
AND HOUR(submit_date( BETWEEN 6 AND 21
LIMIT 0 , 30
于 2012-10-22T02:52:50.333 に答える