私は以下のMySQLクエリを持っています。私はそれを調整しようとしています(今年の今月の結果のみを取り出すようにしています。 PHPのtime()
によって生成されたUNIXタイムスタンプがtime
カラム(referrals
テーブルの下)に格納されているので、以下の設定ではt2.time
となります。当月のMySQLのみ?
私の問題は、どのように進むべきかわかりません。WHERE
句の最後に以下を追加するようなものになると思いますか? =>AND t2.time IS WITHIN THE CURRENT MONTH
(キャップは質問の残りと問題を区別するためにちょうどあります)しかし、私は現在の月の中にそれがあるかどうかチェックする方法がわかりません。
MySQLのクエリ:
SELECT t1.username,
t1.website,
SUM(IF(t2.type = 'in', 1, 0)) AS in_count,
SUM(IF(t2.type = 'out', 1, 0)) AS out_count
FROM users AS t1
JOIN referrals AS t2
ON t1.username = t2.author
WHERE t1.website != ''
GROUP BY t1.username,
t1.website
ORDER BY in_count DESC
LIMIT 0, 10
は、すべての助けに感謝します! :B
データ型「時間」には年+月の詳細が格納されていませんか?これはあなたのアプリケーションが2012年に問題になることを意味します – ajreal
@ajreal私はあなたを理解していませんが、型はdb内のINTであり、UNIXのタイムスタンプはPHPのtime()によって生成されます。 – newbtophp
データ型は 'time'なので、私の悪い、すべてのコストで、列や表として予約されたキーワードを使用しないでください – ajreal