STRFTIME возвращает Null - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно отфильтровать по месяцу в Sqlite, но функция STRFTIME возвращает Null.

Даты, кажется, в стандартном формате.

SELECT arrival_date a, 
       departure_date d, 
       strftime('%m', arrival_date) m 
  FROM table

Возвращает (например):

 13/02/2015, 15/02/2015, Null

Есть ли способ обойти это?

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Функция strftime для SQLite предназначена для анализа текстовой даты, выполнения некоторых манипуляций (например, добавления нескольких дней), а затем возврата строки выходной даты.Если вы просто хотите извлечь числовой компонент месяца, используйте substr:

SELECT
    arrival_date a, 
    departure_date d,
    substr(arrival_date, 4, 2) m
FROM table;
0 голосов
/ 14 июня 2019

strftime() и все другие функции sqlite даты и времени вернут null, если получен аргумент в формате, который они не понимают. DD/MM/YYYY форматированные даты, такие как 13/02/2015, не являются понятным форматом. Полный список приведен в документации, но если вы храните только дату в виде строки, YYYY-MM-DD - это то, что вам нужно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...