Text and Date Queries
Date Windows
Filtering Fixed Days
SQLite date functions work well with ISO date strings. Keeping dates fixed makes examples deterministic.
Program
Play the script to filter dated events and compute a follow-up day.
date_windows.sql
Replay: real traced execution (multi-file project)
CREATE TABLE events (name TEXT, day TEXT);
INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');
WITH params(start_day) AS (VALUES ('2026-01-02')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;
CREATE TABLE events (name TEXT, day TEXT);
INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');
WITH params(start_day) AS (VALUES ('2026-01-01')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;
CREATE TABLE events (name TEXT, day TEXT);
INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');
WITH params(start_day) AS (VALUES ('2026-01-03')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;
tables ← 1 row
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');values this step1 rowtablesevents ← 3 rows
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-02')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step3 rowseventsresult ← 2 rows
2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-02')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step2 rowsresult
tables ← 1 row
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');values this step1 rowtablesevents ← 3 rows
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-01')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step3 rowseventsresult ← 3 rows
2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-01')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step3 rowsresult
tables ← 1 row
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');values this step1 rowtablesevents ← 3 rows
1CREATE TABLE events (name TEXT, day TEXT);2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-03')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step3 rowseventsresult ← 1 row
2INSERT INTO events VALUES ('plan', '2026-01-01'), ('build', '2026-01-02'), ('ship', '2026-01-04');3WITH params(start_day) AS (VALUES ('2026-01-03')) SELECT name, day, DATE(day, '+7 day') AS follow_up FROM events WHERE day >= (SELECT start_day FROM params) ORDER BY day;values this step1 rowresult
ISO date
`YYYY-MM-DD` text sorts in date order for fixed dates.
DATE
`DATE(day, '+7 day')` calculates a deterministic follow-up date.
date filter
The selected `start_day` controls which events remain.