zoukankan      html  css  js  c++  java
  • 关于在SQLITE数据库表中插入本地系统时间的做法

    首先,我参考下面的博文地址:http://blog.csdn.net/liuzhidong123/article/details/6847104

     

    sqlite3 表里插入系统时间(时间戳)

    分类: sqlite3 时间戳 5010人阅读 评论(4) 收藏 举报

    就像在提交日志的时候系统会把提交的时间记录下来一样,如果想在sqlite3下创建的表里插入数据的时候也把插入数据的时间点存储在sqlite数据库里怎么处理呢?

    创建一个数据库,如foo.db

     

    在这个表里创建一个表:

    CREATE TABLE time([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP);

    插入数据:

    INSERT INTO time([IDCardNo]) VALUES('aaa'); 

    查看:

    select * from time;

    结果是

    1|aaa|2011-10-6 06:48:51

    这时会发现这个时间并不是系统的时间,而世界时间,怎么处理呢?

    CREATE TABLE time([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime')));

    再次插入数据

    INSERT INTO time([IDCardNo]) VALUES('aaa'); 

    查看:

    1|aaa|2011-10-6 13:05:51

    这样就和系统的本地时间对应了。

    ==========================

    按照上述博文的做法,我插入的系统时间一项中是不对的。当我到处找资料的时候,发现大家都是用的这种做法,那么问题出在哪里呢?

    后面我在插入数据的时候,改了一下,INSERT INTO time([IDCardNo],TimeStamp ) VALUES('aaa',datetime('now','localtime')); 

    结果时间才跟电脑上显示的系统本地时间是对应的了。

    原因:

      原因出在,我在插入每个数据,应该在时间那项里面跟上datetime('now', 'localtime');

      这样才会对,现在时间是一样的了,之前我在时间这项上面没有插入数据,因为我觉得在创建表的时候用NOT NULL DEFAULT datetime('now', 'localtime'),以为我不插入时间项,在每项的时候会自动插入,结果自动插入是实现了,不过时间不对,与电脑上显示的时间老是相差那么几个小时。
      我的个去,这种问题,蛋碎啊
  • 相关阅读:
    Java学习day2
    Java 学习day1
    const
    数组
    scanf、printf、gets、puts的应用及区别
    指针数组和数组指针
    指针函数和函数指针
    nginx Windows版使用说明
    windows平台上nginx部署web.py(转)
    python安装程序是报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
  • 原文地址:https://www.cnblogs.com/lihaiping/p/sqlitedatetime.html
Copyright © 2011-2022 走看看