Learn SQL/Intermediate/Date & Time/SQL Days Since Signup

SQL Days Since Signup

A specific, extremely common application of subtracting dates — measuring how long a user or campaign has been active.

What & Why

Subtracting a signup date from a reporting date returns elapsed calendar days. This worked result uses April 30, 2024 as a fixed reporting boundary for the four growth.users rows.

See How It Works

BUSINESS QUESTION

Growth wants every user account's age in days as of 2024-04-30.

idcreated_atcountrychannelplanactivated_atchurned_at
1012024-01-15 09:10:00+00USorganicpro2024-01-16 14:25:00+00NULL
1022024-02-10 11:05:00+00CApaidfreeNULL2024-03-20 10:00:00+00
1032024-03-12 16:35:00+00GBreferralpro2024-03-13 08:15:00+00NULL
1042024-04-01 13:20:00+00USorganicfree2024-04-03 12:00:00+00NULL
EXAMPLE QUERY
SELECT
  id AS user_id,
  created_at::date AS signup_date,
  DATE '2024-04-30' - created_at::date AS days_since_signup
FROM growth.users
ORDER BY days_since_signup DESC, user_id;
RESULT — exact output from the displayed Queryflo rows
user_idsignup_datedays_since_signup
1012024-01-15106
1022024-02-1080
1032024-03-1249
1042024-04-0129

All account ages use the same fixed 2024-04-30 report date.

Now You Try

Practice this concept

Calculate days since signup for each growth.users row as of the fixed date 2024-04-30, ordered from longest to shortest.

Available schema
growth

Prefix tables with growth.table_name.

user_idsignup_datedays_since_signup
growth.users
ColumnType
idinteger
created_attimestamp with time zone
countrytext
channeltext
plantext
activated_attimestamp with time zone
churned_attimestamp with time zone
legacy_user_codetext
query.sql
Intermediate business practice

Sign up free to try it on a real business scenario