2017-11-09 5 views
0

私のdatepartが7平日の7日(土曜日)に働くのに問題があります。月曜日〜金曜日に適切な結果が返されます。助言がありますか?SQL:Datepartは7平日のうち1日の結果を返しません

SELECT 
     u.username AS poweruploader, 
     u.profile_uploads_count AS uploads, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 1 THEN 1 ELSE NULL END) AS sunday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 2 THEN 1 ELSE NULL END) AS monday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 3 THEN 1 ELSE NULL END) AS tuesday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 4 THEN 1 ELSE NULL END) AS wednesday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 5 THEN 1 ELSE NULL END) AS thursday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 6 THEN 1 ELSE NULL END) AS friday, 
     COUNT (CASE WHEN datepart(weekday,i.submission::date) = 7 THEN 1 ELSE NULL END) AS saturday 
    FROM application.users AS u 
    JOIN application.image AS i ON u.username = i.username 
    WHERE profile_uploads_count >= '5' 
    GROUP BY 1,2 
+0

WHERE基準に適合するレコードがありますか?また、intフィールドの場合は、SQLが変換を行わなければならないので、 ''を引用符で囲まないでください。 –

+1

'datepart'はpostgresql afaikの有効な関数ではありません。 date_partにする必要があります。上記のクエリは、エラーをスローする必要があります。 'weekday'はdatetime型のための有効なサブフィールドではありません。 https://www.postgresql.org/docs/8.1/static/functions-datetime.html –

答えて

3

Postgresを使用している場合は、機能はdate_part()です。 0から6の範囲の値を返します。日曜日は0、土曜日は6です。

+1

「平日」も使用されていません:use dow **:例: 'date_part( 'dow'、datecolumn)' **または** 'extract(datecolumnからのダウ)' –

関連する問題