Преобразование даты в строку в Sqlite - PullRequest
0 голосов
/ 11 июня 2010

Есть ли способ преобразовать дату в строку в Sqlite?Например, я пытаюсь получить минимальную дату в Sqlite:

SELECT MIN(StartDate) AS MinDate FROM TableName

Я знаю, что в SQL Server я бы использовал приведенный ниже SQL для выполнения того, что я пытаюсь сделать:* Спасибо!

Ответы [ 3 ]

4 голосов
/ 11 июня 2010

SQLite не имеет типа даты. На самом деле CURRENT_TIMESTAMP возвращает строку в формате YYYY-MM-DD HH:MM:SS. функции форматирования / вычисления даты / времени принимают строки в этом формате или, альтернативно, числа, которые интерпретируются как юлианские даты , если вы не используете 'unixepoch' модификатор.

Итак, «преобразование даты в строку» зависит от того, как вы храните даты:

  • Если вы храните их как юлианские даты, используйте DATE(YourDateColumn).
  • Если вы храните их как Unix-раз, используйте DATE(YourDateColumn, 'unixepoch').
  • Если вы храните их как строки ISO 8601, тогда вам ничего не нужно делать. Если вам не нужна строка в другом формате, в этом случае вам следует использовать функцию STRFTIME.
  • Если вы храните их как какой-либо другой формат строки, вам действительно следует рассмотреть возможность использования одного из поддерживаемых форматов, чтобы вы могли использовать функции даты / времени.

Во всех трех форматах даты хронологический порядок совпадает с лексикографическим порядком, поэтому функция MIN работает, как и ожидалось.

3 голосов
/ 11 июня 2010

Попробуйте это:

SELECT MIN(DATE('your-date-here')) as MinDate FROM TableName

И убедитесь, что ваш date-here соответствует хорошо понятному формату SQLite (см. Раздел Time String . В документации)

2 голосов
/ 30 августа 2017

попробуй это !!

 SELECT * FROM Table WHERE strftime('%Y-%m-%d',CreatedAt) BETWEEN '2014-10-07' AND '2014-10-17'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...