Как вставить значение datetime в базу данных SQLite?

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

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

Операторы SQL:

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

Ответ 1

Формат, в котором вы нуждаетесь:

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

то есть. yyyy-MM-dd HH: mm: ss

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

Ответ 3

Вы должны изменить формат строки даты, которую вы поставляете, чтобы иметь возможность вставить ее с помощью функции 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
%%  % 

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

  • YYYY-MM-DD
  • ГГГГ-ММ-ДД ЧЧ: ММ
  • ГГГГ-ММ-ДД ЧЧ: ММ: СС
  • ГГГГ-ММ-ДД ЧЧ: ММ: SS.SSS
  • YYYY-MM-DDThh: MM
  • YYYY-MM-ДДTчч: ММ: СС
  • YYYY-MM-DDThh: ММ: СС.ссс
  • HH: MM
  • HH: MM: SS
  • HH: MM: СС.ссс
  • сейчас

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

Ответ 4

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

Ответ 5

Прочитайте Это: 1.2 Date и тип данных времени лучший тип данных для хранения даты и времени:

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

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

Ответ 6

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

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