最近在做一个项目,其中用到了与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 语句打印结果时可以看到它们的差别。
分享到:
相关推荐
在 SQLite 中,日期类型数据的存储方式有多种,包括 Date、Time 和 DateTime 三种类型。其中,Date 类型数据在数据库中以 yyyy-MM-dd 形式存储,而 Time 类型数据以 HH:mm 形式存储。然而,DateTime 类型数据的存储...
SQLite3 的类库,已经转了格式,可以在c++builder中使用, 使用BCB 2010通过。放在这里留个备份。
本文将深入探讨如何使用C++进行Excel和SQLite数据库的读写操作,这是两个非常实用的技术点,特别是在数据处理和数据分析的场景中。 首先,C++读写Excel通常涉及到使用第三方库,如LibXL、Apache POI或OpenCV的...
在Visual Studio(VS)中开发C++项目时,有时我们需要集成第三方库来扩展功能,SQLite3就是一个常用的轻量级数据库引擎。这篇详细的文章将指导你如何在VS项目中配置和使用SQLite3库。 首先,了解SQLite3:SQLite是...
在IT领域,数据库管理是至关重要的,特别是在C++编程中,SQLite3是一个广泛使用的轻量级嵌入式数据库。本文将深入探讨如何在C++中使用SQLite3进行单例模式的数据库操作类封装,以便更高效、安全地管理数据库。 首先...
在本主题中,我们关注的是SQLite3与C++的结合,即如何在C++程序中使用SQLite3进行数据存储和检索。 1. **SQLite3的特性** - **轻量级**: SQLite3数据库文件是一个普通的文件,可以在文件系统中直接创建、读取和...
它不仅简化了数据库的创建和管理,还提供了动态参数绑定、查询辅助类、表字段操作等高级功能,同时增强了异常处理和事务管理,使得在C++项目中集成和使用SQLite3成为一件轻松愉快的事情。对于开发者来说,这样的封装...
基于C++&qt+sqlite3编写的背单词系统.zip基于C++&qt+sqlite3编写的背单词系统.zip 基于C++&qt+sqlite3编写的背单词系统.zip基于C++&qt+sqlite3编写的背单词系统.zip 基于C++&qt+sqlite3编写的背单词系统.zip基于C++&...
确保已经正确地安装了SQLite3库,并将其链接到你的C++项目中。 1. **连接数据库**: 使用`sqlite3_open()`函数打开或创建一个SQLite数据库。这个函数会返回一个数据库句柄,后续的所有操作都将基于这个句柄进行。...
首先,为了在C++中使用SQLite3,你需要包含相应的头文件`<sqlite3.h>`。安装SQLite3库后,这个头文件通常位于系统头文件目录下。在你的项目中,确保已经正确链接了SQLite3库,这通常是通过编译器选项或链接器指令...
2. `sqlite3.h`: 这是一个头文件,包含了一系列的函数原型和数据结构定义,用于在C或C++代码中调用SQLite3的API。开发人员在源代码中#include这个头文件,就可以使用SQLite3提供的接口,例如打开数据库、执行SQL命令...
在C++开发环境中,SQLite3应用库为开发者提供了便捷的方式来存储和管理数据,尤其适合那些对数据持久化有需求但不希望引入复杂数据库架构的项目。 SQLite3库的C++应用主要依赖于以下组件: 1. **SQLite3动态链接库...
针对这个问题,我们可以采取一些策略来确保SQLite3在C++环境中正确地处理中文路径。 首先,我们需要理解SQLite3的基础。SQLite3是一个轻量级的、自包含的、无服务器的SQL数据库引擎,广泛应用于各种嵌入式系统和...
在`frogAndheffalump`这个文件中,可能包含了具体的源代码实现,包括C++的SQLite封装类和使用Boost多线程的例子。通过阅读和分析这些源码,你可以了解到如何将SQLite与C++结合,以及如何在多线程环境下正确使用它们...
本示例将详细介绍如何在C++中利用SQLite3的API来实现基本的数据库操作,包括查询、插入、更新、删除以及清屏和退出程序。 1. 查询: 在C++中使用SQLite3进行查询,首先需要打开数据库,然后准备SQL语句。以下是一个...
在修改和删除数据时,需要使用 sqlite3_exec函数执行 SQL 语句,如果执行失败,需要使用 sqlite3_errmsg函数来获取错误信息。 在使用C++操作sqlite数据库时,需要注意一些重要的细节。首先,需要确保sqlite3.dll...
2. **封装API**:在`mySQLite.cpp`中,封装`sqlite3_open`, `sqlite3_close`, `sqlite3_exec`, `sqlite3_prepare_v2`, `sqlite3_step`等函数,创建易于使用的C++方法。 3. **错误处理**:添加适当的错误检查和异常...
4. **sqlite3.h**: 这是SQLite3的C接口头文件,包含了所有与SQLite3交互的函数原型和数据类型定义。在C++封装中,`sqlite3.h`被包含在`sqliteDB.cpp`或`sqliteDB.h`中,使得C++代码可以直接访问SQLite3的功能。 5. ...
c++调用sqlite3需要的三个文件,分别是sqlite3.dll sqlite3.h sqlite3.lib
SQLite3是一款轻量级的、开源的、自...总之,SQLite3 C++ API提供了一套全面的接口,使得开发者能够方便地在C++应用中集成SQLite3数据库功能,无论是在桌面应用还是嵌入式系统,都能灵活高效地处理数据存储和检索任务。