データベースから欲しい結果を取得中に問題が発生しました.DATE_FORMAT関数はnullを返すか、書式付きの日付を返します。mysql date_formatが空であることを返していません
表の列とそのデータ型:
paid_amount - >フロート
のcreated_at - > VARCHAR(100)
怒鳴るが、クエリでは、次のとおりです。
SELECT SUM(paid_amount) AS amount,
date_format(created_at,'%Y-%m-%d') as dated
FROM `job_card`
WHERE date_format(created_at,'%Y-%m-%d') >= '2017-09-03' AND
date_format(created_at,'%Y-%m-%d') <= '2017-10-03' GROUP BY date(created_at)
私は別のものを使用していますUNIX_TIMESTAMP関数を使用して日付をタイムスタンプに変換するアプローチですが、同じ問題がまだ発生しています。
SELECT SUM(paid_amount) AS paid_amount,
UNIX_TIMESTAMP(created_at) AS duration
FROM job_card
WHERE UNIX_TIMESTAMP(created_at) >= 1504549800 AND
UNIX_TIMESTAMP(created_at) <= 1507055400 GROUP BY date(payment_date)
なぜ「created_at」がvarcharであるか。日付形式でなければなりません。 –
だから、 'created_at'にはどのような値が入りますか? –
@ chris85ああ、そうです。投稿を編集させてください。 –