Дата, хранящаяся в таблице, неверна в SQLite - PullRequest
2 голосов
/ 20 августа 2009

Можете ли вы сказать мне, что дата в базе данных SQLite принимает как 03.12.1999 вместо 03.12.2009. Я вставляю правильную дату при сохранении в этом формате. Я не могу понять, в чем причина. Какое преобразование должно быть сделано в Вставить заявление. Может ли кто-нибудь помочь мне.

CREATE TABLE [PIs] ( [PIGUID] GUID PRIMARY KEY NOT NULL,
[CompanyGUID] GUID NOT NULL,
[No] varCHAR(50) NOT NULL,
[Dt] TIMESTAMP NOT NULL,
[SupplierLgrGUID] GUID NOT NULL,
[SupplierLgrAddressGUID] GUID NOT NULL,
[SupplierBillNo] varCHAR(50) NULL,
[SupplierBillDt] TIMESTAMP NULL,
[CrDays] INTEGER NULL,
[DueDt] TIMESTAMP NULL,
[Narration] varCHAR(300) NULL,
[CreatedDt] TIMESTAMP NOT NULL,
[LastEditedDt] TIMESTAMP NOT NULL,
)

Моя инструкция по вставке выглядит следующим образом:

INSERT INTO PIs(
  PIGUID,CompanyGUID,No,Dt,SupplierLgrGUID,SupplierLgrAddressGUID,
  SupplierBillNo,SupplierBillDt,CrDays,DueDt,Narration,CreatedDt,
  LastEditedDt)
VALUES(
  '806aeec2-762a-432e-800f-0354df3b7852' ,
  '375888f5-e1a5-4c75-9154-62ffc83dca97', 'PI/0809/004' ,
  datetime('8/19/2009 12:44:25 PM'),
  'ff376218-c2d9-4e02-86e6-e90c8d5efc43',
  '7dad4725-2e37-4596-88f4-7b088f0d91c4', '0021',
  datetime('8/19/2009 12:44:25 PM'), 12,
  datetime('8/31/2009 12:44:25 PM'), 'narration',
  datetime('now'),datetime('now')
)

Я установил SQLite 3.3.8, и моя операционная система - Windows Vista.

Любая помощь будет оценена ..

Привет

Асиф

Ответы [ 3 ]

5 голосов
/ 20 августа 2009

Формат sqlite для даты - это стандарт ISO, т.е. YYYY-MM-DD, а не тот, который вы использовали См. Формат даты Sqllite

Try ВЫБЕРИТЕ дату («сейчас»); чтобы увидеть

2 голосов
/ 20 августа 2009

Эта ссылка содержит некоторую информацию, которую вы должны прочитать, используя TIMESTAMP и DATETIME для SQLite.

Вот выдержка:

TIMESTAMP, DATETIME Тип строки неограниченной длины, используемый для хранения комбинаций даты и времени. Требуемый формат: «ГГГГ-ММ-ДД ЧЧ: ММ: СС», все, что не следует этому шаблону, игнорируется.

0 голосов
/ 16 декабря 2010

У меня тоже были проблемы с этим ... Если вы используете VB.NET, вот как вставить TimeStamp, я имею в виду DateTime в SQLlite

DateTime.UtcNow.ToString ("o")

Важной частью является .ToString ("o"), потому что это форматирует дату в ISO 8601

Вот ссылка, которая объясняет все о формате - http://msdn.microsoft.com/en-us/library/az4se3k1.aspx#Roundtrip

Похоже, когда он входит в базу данных. 2010-12-16T02: 09: 55.7870590Z

Но после вставки данных это выглядит следующим образом.

12/16/2010 2:09:55

Надеюсь, это поможет кому-то еще.

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