sqlite3数据库写入时间操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/shunli008/article/details/78778606

在今天的项目中,想在sqlite3数据库中加一个时间,原本用的是time()函数获取时间,通过简单的处理写入数据库,但是转换相比下面的操作太过于复杂

在创建sqlite表的时候只需加

[CreatedTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime'))

意思是单添加一条数据时自动获取本地时间并且写入。

添加数据时此项不需要添加(表名为time,一共有四项:id,CreatedTime,name,data)

insert into time(name,data) values('admin', 'login')"

还有一个是获取网络时间写入

[CreatedTime] TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP

刚才又查了一下资料,其实是通过数据库中的datetime()函数获取时间
下面的是转载

select datetime(‘now’);
结果:2006-10-17 12:55:54
select datetime(‘2006-10-17’);
结果:2006-10-17 12:00:00
select datetime(‘2006-10-17 00:20:00’, ‘+1 hour’, ‘-12 minute’);
结果:2006-10-17 01:08:00
select date(‘2006-10-17’, ‘+1 day’, ‘+1 year’);
结果:2007-10-18
select datetime(‘now’, ‘start of year’);
结果:2006-01-01 00:00:00
select datetime(‘now’, ‘start of month’);
结果:2006-10-01 00:00:00
select datetime(‘now’, ‘start of day’);
结果:2006-10-17 00:00:00
尽管第2个参数加上了10个小时,但是却被第3个参数 start of day 把时间归零到00:00:00
随后的第4个参数在00:00:00的基础上把时间增加了10个小时变成了10:00:00。
select datetime(‘now’, ‘+10 hour’, ‘start of day’, ‘+10 hour’);
结果:2006-10-17 10:00:00
把格林威治时区转换成本地时区。
select datetime(‘now’, ‘localtime’);
结果:2006-10-17 21:21:47
select datetime(‘now’, ‘+8 hour’);
结果:2006-10-17 21:24:45

猜你喜欢

转载自blog.csdn.net/shunli008/article/details/78778606