Aritmética de fechas en SQL
En SQLite las fechas son texto, y los modificadores hacen el trabajo de calendario por ti.
SELECT
placed_at,
DATE(placed_at, 'start of month') AS month_start,
DATE(placed_at, 'start of month', '+1 month', '-1 day') AS month_end,
DATE(placed_at, '+30 days') AS due,
CAST(JULIANDAY('now') - JULIANDAY(placed_at) AS INTEGER) AS days_old,
STRFTIME('%w', placed_at) AS weekday
FROM orders
ORDER BY placed_at;
Cómo funciona
- Los modificadores se encadenan:
'start of month', luego'+1 month', luego'-1 day'. - Las diferencias de
JULIANDAYdan un lapso en días, fracciones incluidas. STRFTIMEformatea, y%wda el día de la semana como 0 a 6.
Palabras clave y builtins usados aquí
ASBYCASTDATEFROMINTEGERORDERSELECT
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 312
- Tokens
- 65
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 41 segundos.
Paso 7 de 7 en Expresiones; paso 22 de 24 en Analítica y reportes.