SELECT _id, busnum, date_format(servdate, '%a') as servdayofweek
FROM tb1
WHERE servdate BETWEEN date('now', 'Weekday 1', '-21 days') AND date('now')
% a - сокращенный день недели.Смотрите документацию для других способов форматирования.
edit:
Упс!Пропустил тег sqlite.Выше для MySQL.Для sqlite ( документация ):
SELECT _id, busnum, strftime('%w', servdate) as servdayofweek
FROM tb1
WHERE servdate BETWEEN date('now', 'Weekday 1', '-21 days') AND date('now')
за исключением того, что возвращает день недели в виде значений от 0 до 6. Может быть, этого достаточно?