У меня есть база данных / таблица в SQLITE, использующая следующую структуру
CREATE TABLE milestones (
ID INT( 10 ) NOT NULL,
Title VARCHAR( 50 ) DEFAULT NULL,
mYear INT( 11 ) NOT NULL,
mMonth INT( 11 ) DEFAULT NULL,
mDay INT( 11 ) DEFAULT NULL,
mText VARCHAR( 2000 ) NOT NULL,
Theme1 VARCHAR( 50 ) DEFAULT NULL,
Theme2 VARCHAR( 50 ) DEFAULT NULL,
ImageURL VARCHAR( 50 ) DEFAULT NULL,
PRIMARY KEY ( ID )
);
Я использую следующий запрос, чтобы получить 5 ближайших дат по отношению к сегодняшней дате.
SELECT dtable.ID, dtable.Date
FROM(SELECT ID, date(mYear||'-'||mMonth||'-'||mDay) as Date
FROM milestones
WHERE mMonth IS NOT NULL AND mDay IS NOT NULL AND mMonth ="+varMonth+")AS dtable
ORDER BY ABS("+varDay+"-date(dtable.Date, '%d'))
LIMIT 5;
Проблемы с использованием этого запроса в том, что я получаю только записи с форматом даты гггг-мм-дд.
Если есть какая-либо запись с 1-значным месяцем или днем (формат гггг-м-д или гггг-мм-д или гггг-м-дд), она не отображается в результате.
Как решить эту проблему, не меняя тип данных mMonth или mDay?