你能告诉我SQLite数据库中的日期是否正常 12/3/1899而不是12/3/2009。 我以这种格式保存时插入了正确的日期。我无法理解是什么原因。必须在Insert Statement中进行哪些转换。任何人都可以帮助我。
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。
任何帮助将不胜感激..
此致
阿西
答案 0 :(得分:5)
日期的sqlite格式是ISO标准,即YYYY-MM-DD而不是您使用的格式 见Sqllite date format
尝试 选择日期('现在'); 看
答案 1 :(得分:2)
这个link有一些信息,你应该阅读使用TIMESTAMP和DATETIME for SQLite。
以下是摘录:
TIMESTAMP,DATETIME 用于存储日期/时间组合的字符串类型,长度不限。所需格式为'YYYY-MM-DD HH:MM:SS',不遵循此模式的任何内容都将被忽略。
答案 2 :(得分:0)
我也遇到了这个问题...如果你在这里使用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 AM
希望这有助于其他人。