`
Davidlwq
  • 浏览: 46884 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C++中time和sqlite3中datetime类型之间的转换

 
阅读更多

最近在做一个项目,其中用到了与sqlite3中时间类型,这里把学到的结果总结下。

我们通常用到的时间通常分为两种,本地时间和UTC时间。

这两种时间的产生是按时区具体划分的,其区别可以google之,这时就不多说了,简单来说就是UTC时间是时区为0的某个地方的时间,本地时间与其相差几个小时(多或少)。

 

在<ctime>头文件中有一个函数

time_t time(time_t* tt)

 其中time_t就是一个long int类型,它返回的是系统时间与格林治时间(1970年1月1日 00:00:00)相差的秒数。而另外两个函数

struct tm * localtime ( const time_t * timer );
struct tm * gmtime ( const time_t * timer );

 则将time_t类型转化为tm结构,tm结构中包含了较多的信息,如星期几,几年几月等等。这两个函数的区别你可以理解为localtime返回的就是参数中时间的封闭,而gmtime则可以认为是localtime返回的结果送去与UTC相差的几个小时所得到的时间,即为UTC时间,这里我认为操作系统中保存了时区信息。

 

sqlite3中的时间日期可以字符串、整型、浮点类型表示,这里我们选择用整型表示,因为它比较简单(比字符串简单),而且能表示日期和时间(浮点类型只能表示日期)。当我们要把整型转化为日期时间类型时,要使用以下形式:

datetime(12345678,'unixepoch')
datetime(12345678,'unixepoch','localtime')

 这里unixepoch表示传入的参数是一个时间戳,当不加localtime里,我们可认为它调用的是gmtime这个方法,否则它调用的是localtime这个方法(当然这里不一定是这两个方法,我们只是可以这样认为)。当你使用select 语句打印结果时可以看到它们的差别。

 

 

分享到:
评论

相关推荐

    C++Builder中使用的SQLite3类库

    SQLite3 的类库,已经转了格式,可以在c++builder中使用, 使用BCB 2010通过。放在这里留个备份。

    Android的SQLite中DateTime类型数据的存取问题

    Android的SQLite中DateTime类型数据的存取问题

    基于C++&qt+sqlite3编写的背单词系统.zip

    基于C++&qt+sqlite3编写的背单词系统.zip基于C++&qt+sqlite3编写的背单词系统.zip 基于C++&qt+sqlite3编写的背单词系统.zip基于C++&qt+sqlite3编写的背单词系统.zip 基于C++&qt+sqlite3编写的背单词系统.zip基于C++&...

    c++ sqlite3文件

    c++调用sqlite3需要的三个文件,分别是sqlite3.dll sqlite3.h sqlite3.lib

    Sqlite3 C++ 简单单例数据库操作类封装

    Sqlite3 C++ 简单单例数据库操作类封装,支持数据的简单操作,可用,尚不完善

    sqlite3 C++访问

    使用C++操作SQLite数据库,在windows平台上,用C++语言

    C++ 读写Excel和SQLite数据

    文件中包含的为源码,最后导出提供的dll文件,其中包含有: 1、C++读写Excel; 2、C++操作SQLite数据库;

    C++ 读写Excel以及操作SQLite

    该文件中包含有: 1、NPOI_EXCEL工程: 该工程文件中包含有C#工程对NPOI.dll的的读写进行封装成类库的操作,主要是使用... 该工程是C++操作数据库的简单封装,主要是对数据库的基本操作,涉及有SQLite和SQL Sever数据库

    SQLite3C++

    sqlite3C++版动态库和头文件,可直接调用。

    SQLite3中的数据类型

    SQLite3中的数据类型

    SQLite3资料C++

    SQLiteSpy_1.8.5 数据库查看UI程序 :查看SQLIte3 数据库的UI小程序 _SQLite权威指南.pdf SQLite学习手册_中文全本.pdf CppSQLite3U国外牛人的sqlite封装.zip C++封装类使用方法:...

    SQLite3的C++接口例子

    SQLite3的C++接口,实现1.查询 2.插入 3.更新 4.删除 5.清屏 6.跳出 六个功能!

    Sqlite3重编译版本,支持Sqlite3_key和Sqlite3_rekey方法.rar

    基于sqlite-amalgamation-3280000和wxsqlite3-3.3.1重编译版本,支持Sqlite3_key和Sqlite3_rekey方法

    SQLite3应用库C++

    SQLite3应用库C++,不用编译,里面带exe,dll,.h文件 使用方法参照内部ReadMe文档。

    SQLite3与CC++的结合应用

    SQLite并没有一次性做到位,只有下载这些东西是不能放在vs2010中并马上使用的,下载下来的文件中有sqlite3.c/h/dll/def,还是...就能生成sqlite3.exp和sqlite3.lib文件了,这样在工程中就可以加入lib文件进行编译了。

    sqlite3(c++调用SQLite接口函数时会用到)

    在Windows操作系统下,如果想通过C++...共包括以下五个文件:sqlite3.lib sqlite3.h sqlite3.dll sqlite3.def mspdb60.dll 相关调用调用步骤和使用方法可见如下内容: http://linger-yan.iteye.com/admin/blogs/1600007

    自己用C++封装sqlite3 for vc

    自己用C++封装sqlite3 for vc,内含Sqlite3 官方库

    C++封装版sqlite3

    C版sqlite3再封装成C++版,简化创建数据库,增加动态参数绑定快捷函数,查询辅助类,支持更改表字段,删除表字段, 加入异常抛出,事务开始提交回滚

    基于标准库的C++ sqlite3常用功能封装和使用

    基于标准库的C++ sqlite3常用功能封装和使用 实现对SQLite常用功能的封装,如:增,删,改,查,事务。

    c++ sqlite帮助类

    自己编写的一个c++ 版sqlite数据库访问帮助类,主要对sqlite的常用的几个接口函数进行封装成一个类,实现查询、事务处理等基本数据库访问应用,简单,好用,希望对大家有用,注意传人的参数是stl 的string 类型,...

Global site tag (gtag.js) - Google Analytics