2017-07-13 6 views
1

私はuserCountに1日の開始から'xxxx-xx-xx 00:00:00'を問い合わせ、この日の最後に'xxxx-xx-xx 23:59:59'のようなスクリプトを持っています。特定の1日のデータを特定の日の範囲から選択する

USE db; 
SELECT user 
FROM db.user AS user 
WHERE 
user.payTime BETWEEN '2017-07-12 00:00:00' AND '2017-07-12 23:59:59' 
GROUP BY user.username 

だから今、私は2017-06-01から2017-07-12に日以内のユーザーのpayTimeを照会することができますか?

最初の事は私の心から出てきた日付範囲宣言されています。

SET CURRDATE = '2017-06-01'; 
SET ENDDATE = '2017-07-12'; 

とループにスクリプトを置くように:

WHILE CURRDATE < ENDDATE DO 
    USE db; 
    ....... 
    WHERE 
    user.payTime BETWEEN 'CURRDATE 00:00:00' AND 'CURRDATE 23:59:59' 
    ....... 
    SET CURRDATE = DATE_ADD(CURRDATE, INTERVAL 1 DAY) 
END WHILE; 
+1

たぶん私は何かを見逃しているかもしれませんが、どうして 'BETWEEN' 2017-06-01 00:00:00 'AND' 2017-07-12 23:59:59'''d'c''d? – cwallenpoole

+0

@cwallenpoole私は特定の日のデータを照会したいが、2つの日付の範囲は照会したくないので –

+0

日付でグルーピングしてみましたか:https://stackoverflow.com/questions/6054144/how-can-i-group-日付 - 日付 - 時間 - 非 - 考慮時間 – cwallenpoole

答えて

0

これを試してみてください -

SELECT user, user.payTime 
FROM db.user AS user 
WHERE user.payTime BETWEEN '2017-06-01 00:00:00' AND '2017-07-12 23:59:59' 
GROUP BY CAST(user.payTime as DATE) 
関連する問題