[color=blue]在使用SQLite3时使用了TimeStamp,但是遇到一些问题,现总结如下:
一、我的SQL语句
CREATE TABLE Logs([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP);
INSERT INTO Logs([IDCardNo]) VALUES('11111111');
二、在使用SELECT时遇到的问题
select * from Logs 得到的结果如下
ID IDCardNo CreatedTime 2 11111111 2010-7-19 11:45:41
正确的结果应该如下:
ID IDCardNo CreatedTime 2 11111111 2010-7-19 19:45:30
在网上查找了一下,发现是时区不对造成的,请参见CURRENT_TIMESTAMP is in GMT, not the timezone of the machine[/color]
[color=red]正确的方法应该如下:
select IDCardNo,Datetime(CreatedTime,'localtime') from logtable
或可以这样创建数据库表
CREATE TABLE Logs([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime')));[/color]
一、我的SQL语句
CREATE TABLE Logs([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP);
INSERT INTO Logs([IDCardNo]) VALUES('11111111');
二、在使用SELECT时遇到的问题
select * from Logs 得到的结果如下
ID IDCardNo CreatedTime 2 11111111 2010-7-19 11:45:41
正确的结果应该如下:
ID IDCardNo CreatedTime 2 11111111 2010-7-19 19:45:30
在网上查找了一下,发现是时区不对造成的,请参见CURRENT_TIMESTAMP is in GMT, not the timezone of the machine[/color]
[color=red]正确的方法应该如下:
select IDCardNo,Datetime(CreatedTime,'localtime') from logtable
或可以这样创建数据库表
CREATE TABLE Logs([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime')));[/color]