Как вставить значение datetime в базу данных SQLite? - PullRequest
104 голосов
/ 19 декабря 2009

Я пытаюсь вставить значение datetime в базу данных SQLite . Это кажется успешным, но когда я пытаюсь получить значение, появляется ошибка:

<Невозможно прочитать данные>

Операторы SQL:

create table myTable (name varchar(25), myDate DATETIME)
insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')

Ответы [ 6 ]

141 голосов
/ 19 декабря 2009

Вам нужен следующий формат:

'2007-01-01 10:00:00'

т.е. гггг-мм-дд чч: мм: сс

Однако, если возможно, используйте параметризованный запрос, поскольку это избавит вас от беспокойства о деталях форматирования.

46 голосов
/ 19 декабря 2009

Способ хранения дат в SQLite:

 yyyy-mm-dd hh:mm:ss.xxxxxx

SQLite также имеет некоторые функции даты и времени, которые вы можете использовать. См. SQL в понимании SQLite, функции даты и времени .

17 голосов
/ 19 декабря 2009

Вы должны изменить формат строки даты, которую вы предоставляете, чтобы иметь возможность вставить ее, используя функцию STRFTIME. Причина в том, что нет варианта сокращения месяца:

%d  day of month: 00
%f  fractional seconds: SS.SSS
%H  hour: 00-24
%j  day of year: 001-366
%J  Julian day number
%m  month: 01-12
%M  minute: 00-59
%s  seconds since 1970-01-01
%S  seconds: 00-59
%w  day of week 0-6 with sunday==0
%W  week of year: 00-53
%Y  year: 0000-9999
%%  % 

Альтернативой является форматирование даты / времени в уже принятом формате:

  1. YYYY-MM-DD
  2. ГГГГ-ММ-ДД ЧЧ: ММ
  3. ГГГГ-ММ-ДД ЧЧ: ММ: СС
  4. ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС
  5. YYYY-MM-DDThh: MM
  6. YYYY-MM-DDThh: MM: SS
  7. YYYY-MM-DDThh: ММ: СС.ссс
  8. HH: MM
  9. HH: MM: SS
  10. HH: MM: СС.ссс
  11. сейчас

Ссылка: Функции даты и времени SQLite

8 голосов
/ 15 октября 2013

Используйте CURRENT_TIMESTAMP, когда вам это нужно, вместо NOW() (то есть MySQL)

6 голосов
/ 14 сентября 2012

Чтение Это : 1,2 Date и тип данных времени лучший тип данных для хранения даты и времени:

TEXT лучший формат: yyyy-MM-dd HH:mm:ss

Тогда прочитайте эту страницу; лучше всего объяснить дату и время в SQLite. Я надеюсь, что это поможет вам

0 голосов
/ 19 декабря 2009

Возможно, это не самый популярный или эффективный метод, но я склонен отказываться от сильных типов данных в SQLite , так как они все равно по существу выгружаются в виде строк.

Ранее я писал тонкую оболочку C # для библиотеки SQLite (конечно, при использовании SQLite с C #) для обработки вставок и извлечений в SQLite и из него, как если бы я имел дело с объектами DateTime.

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