0

SQL データベースをフィルタリングしようとしています。

各行はユーザーを表します。私が注目しているメインの列は、last_visited というタイトルで、… 2009-06-17 12:15:32 のようにフォーマットされています。

過去の日/週/月に何人のユーザーがアクセスしましたか?

のように:

SELECT COUNT(*) AS USERS_TODAY
FROM parts_users
Where updated_at > (NOW()-7)
4

2 に答える 2

5

では、列のテキストですか、それとも日時ですか? 前者の場合:

SELECT COUNT(*) AS USERS_TODAY 
FROM parts_users
WHERE CONVERT(datetime, updated_at, 120) > DATEADD(day, -7, GETDATE())

後者の場合は、CONVERT を省略します。

あるいは、次のような便利なものが見つかるかもしれません:

SELECT CONVERT(datetime, LEFT(updated_at, 10), 120) AS DATE_ONLY,
       COUNT(*) AS USERS_TODAY 
FROM parts_users
WHERE CONVERT(datetime, updated_at, 120) > DATEADD(day, -7, GETDATE())
GROUP BY CONVERT(datetime, LEFT(updated_at, 10), 120)
于 2009-06-17T16:22:27.957 に答える
0

iReport で SQL を使用して同じアイテムの複数の SUM をクエリする方法

SELECT
  SUM(case when (NOW()-1) <= datetime then 1 else 0 end) as 'today',
  SUM(case when (NOW()-7) <= datetime then 1 else 0 end) as 'thisweek',
  COUNT(*) as 'thismonth'
FROM
  table
WHERE
  (NOW()-30) <= datetime AND datetime <= NOW()
于 2009-06-17T16:41:23.707 に答える