5

特定の月のタイムスタンプ (たとえば、9 月 1 日から 9 月 30 日までのタイムスタンプ) の値を取得したいタイムスタンプ列を持つテーブルがあり、月が 31 日である場合を考慮します。私はこのクエリを使用します:

SELECT users.username, users.id, count(tahminler.tahmin)as tahmins_no FROM users LEFT JOIN tahminler ON users.id = tahminler.user_id  GROUP BY users.id having count(tahminler.tahmin) > 0

追加できますwhere timestamp IN(dates_array)か??

date_array は月全体の日付になりますか??

4

3 に答える 3

17
SELECT users.username, users.id, count(tahminler.tahmin) as tahmins_no
FROM ユーザー
LEFT JOIN tahminler ON users.id = tahminler.user_id  
ここで、年 (タイムスタンプ) = 2013 および月 (タイムスタンプ) = 9
GROUP BY users.id
count(tahminler.tahmin) > 0 を持つ

インデックスで動作させるには、次のことができます

SELECT users.username, users.id, count(tahminler.tahmin)as tahmins_no 
FROM users 
LEFT JOIN tahminler ON users.id = tahminler.user_id  
where timestamp >= '2013-09-01' and timestamp < '2013-10-01'
GROUP BY users.id 
having count(tahminler.tahmin) > 0
于 2013-09-20T13:21:36.287 に答える
4

TIMESTAMPの場合

YEAR (TIMESTAMP) = 2013 AND MONTH (TIMESTAMP) = 9

同じ条項に含めるには

DATE_FORMAT(TIMESTAMP,'%Y-%m')='2013-09'

UNIXタイムスタンプの場合

YEAR (FROM_UNIXTIME(TIMESTAMP)) = 2013 AND MONTH(FROM_UNIXTIME(TIMESTAMP))=9

同じ条項に含めるには

DATE_FORMAT(FROM_UNIXTIME(TIMESTAMP),'%Y-%m')='2013-09'
于 2013-09-20T13:32:10.943 に答える
0

あなたの質問を正しく理解できたら、次のように追加できます。

WHERE MONTH(timestamp)=9
于 2013-09-20T13:24:47.010 に答える