@EgorKh1

Как отформатировать дату в sqlite?

В таблице в столбце date записана дата в формате DD.MM.YYYY например (26.12.2022).
Но в sqlite дата записывается в формате YYYY-MM-DD.
Мне нужно получить сроки на неделю вперед от сегодняшней даты
и я пытался делать так:
SELECT date, text
FROM data
WHERE date BETWEEN '26.12.2022' AND '02.01.2023'
ORDER BY date;

последний месяц эта команда работала нормально
но сейчас год второй даты изменился и я выяснил что sqlite у даты сравнивает только месяц и день и работает команда
WHERE date BETWEEN '26.12.2022' AND '39.35.2000'  --выводит строки с датами в этом году


показывает даты в этом году хотя во второй дате числа поставлены несуществующие
sqlite обращает внимание только на месяц и день, но не на год
так же я пытался делать и так:
SELECT strftime('%d.%m.%Y', '26.12.2022');
я менял знаки разделяющие %
"%d %m %Y", "%d-%m-%Y"
и менял местами d, m, Y на Y, m, d
но каждый раз получал Null
sqlite почему то не правильно распознавал флаги %d %m %Y как бы я их не ставил он выдаёт Null

P.S. я знаю про DATE('now') и DATE('now', '+7 day')
  • Вопрос задан
  • 506 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Но в sqlite дата записывается в формате YYYY-MM-DD.
Это не в sqlite, это исо стандарт записи даты.
В таблице в столбце date записана дата в формате DD.MM.YYYYВ таблице в столбце date записана дата в формате DD.MM.YYYY
Ну, то есть вы знали что есть формат конкретный формат, но все равно сделали через ж, в угоду собственному чувству прекрасного?

Мне нужно получить сроки на неделю вперед от сегодняшней даты
И вот мы приходим к самому интересному: почему запись в стандартном виде будет работать нормально, а в вашей записи все... очень плохо? Дело в том, что в большинстве бд дата сравнивается как строка, именно по этому запись идет как год.месяц.день, так как при сравнении 2 строк в таком формате любое сравнение 2 дат будет корректно сравнивать 2 строки с правильным результатом. Тем более что в sqlite нет типа данных date, но с правильным форматом содержимого он особо не нужен. Меняйте формат хранения и будет вам щастие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы