How to group by date only in data explorer


(John Waltrip) #1

I’m trying to get the number of user signups by day for this month and run into trouble when trying to group on the created_at field because it includes the timestamp. Anyone know how to just group on the date?

select count(*), created_at
from users
where created_at > '2018-07-01'
and admin = false
group by created_at
order by created_at desc

(Jay Pfaffman) #3

You want to round the datetime to the day. See
https://www.postgresql.org/docs/8.4/static/functions-datetime.html

I am on my phone, so can’t (or won’t) do a full solution, but this should get you close

SELECT EXTRACT(DOY FROM created_at) as day

(John Waltrip) #4

Thanks Jay, I’m still running into the same issue:


(Mittineague) #5

I think date_trunc could work
https://www.postgresql.org/docs/9.1/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC

examples (note the right padded zeroes and oh-ones)

Examples:

SELECT date_trunc(‘hour’, TIMESTAMP ‘2001-02-16 20:38:40’); Result: 2001-02-16 20:00:00
SELECT date_trunc(‘year’, TIMESTAMP ‘2001-02-16 20:38:40’); Result: 2001-01-01 00:00:00


(Jay Pfaffman) #6

@John_Waltrip1, here’s the query I think you’re looking for. I switched to DAY, which is the day of the month, which seems easier for most humans that I know to understand than the day of the year (DOY).

select count(*), 
      EXTRACT(DAY FROM created_at) as day
from users
where created_at > LOCALTIMESTAMP - INTERVAL '14 days'
and admin = false
group by day
order by day desc

(system) #7

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.