SQLite中表中存储的日期错误

SQLite中表中存储的日期错误,sqlite,Sqlite,你能告诉我SQLite数据库中的日期是多少吗 1899年3月12日,而不是2009年3月12日。 以这种格式保存时,我正在插入正确的日期。我不明白原因是什么。在Insert语句中必须进行什么转换。有人能帮我吗 CREATE TABLE [PIs] ( [PIGUID] GUID PRIMARY KEY NOT NULL, [CompanyGUID] GUID NOT NULL, [No] varCHAR(50) NOT NULL, [Dt] TIMESTAMP NOT NULL, [Suppli

你能告诉我SQLite数据库中的日期是多少吗 1899年3月12日,而不是2009年3月12日。 以这种格式保存时,我正在插入正确的日期。我不明白原因是什么。在Insert语句中必须进行什么转换。有人能帮我吗

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

任何帮助都将不胜感激

问候


Asif

日期的sqlite格式是ISO标准ie YYYY-MM-DD,而不是您使用的格式 看

试一试 选择日期(“现在”); 要查看,您应该阅读一些有关使用SQLite的时间戳和日期时间的信息

这里有一段摘录:

时间戳 用于存储日期/时间组合的长度不限的字符串类型。所需格式为“YYYY-MM-DD HH:MM:SS”,任何不遵循此模式的内容都将被忽略


我也有这个问题。。。如果您在这里使用VB.NET是如何将时间戳插入SQLlite,我指的是DateTime

DateTime.UtcNow.ToString(“o”)

重要的部分是.ToString(“o”),因为它将日期格式化为ISO 8601

这是一个链接,解释了格式的所有内容-

当它进入数据库时看起来是这样的。 2010-12-16T02:09:55.7870590Z

但是在插入数据之后,它看起来是这样的

2010年12月16日凌晨2:09:55


希望这对其他人有所帮助。

请发布您正在使用的acutal代码,这将使人们更容易帮助您。请检查以下代码:我已转换为datetime(“”),但给了我奇怪的错误:SQL逻辑错误或缺少数据库请不要在回答中添加其他信息;相反,单击问题下方的“编辑”将信息附加到那里。我已将你的答复中的案文并入你的问题中;现在请删除你的“答案”。如果你能给我一些解决方案,请参考我的问题一次。这个链接是特定于一个特定的libdbi驱动程序的,而不是一般的SQLite。SQLite不强制DATETIME字段使用任何特定格式(DATETIME不是一种内部可识别的格式;在内部,它只区分null/integer/floating point/text/binary blob)。话虽如此,正如Mark的回答所指出的,SQLite提供的日期/时间函数确实希望以一组有限的格式(其中一种恰好是您推荐的格式)中的一种指定日期。