SQLite的时间差判断--删除N天前的数据的两种写法

比如我有个用SQLite Studio创建的Sqlite3类型数据库,里面有个表名为StatisticsData的表结构是 :

-- 表:StatisticsData
CREATE TABLE "StatisticsData" (

"Id"  TEXT NOT NULL,

"MachineName"  NVARCHAR,

"SessionId"  INTEGER,

"ProcessId"  INTEGER,

"ProcessName"  NVARCHAR,

"ProcessRunningStatus"  NVARCHAR,

"WorkingSetMemory"  NVARCHAR,

"WorkingSetPrivateMemory"  NVARCHAR,

"WorkingSetPeak"  NVARCHAR,

"ThreadCount"  NVARCHAR,

"HandleCount"  NVARCHAR,

"TotalProcessorTime"  NVARCHAR,

"UserProcessorTime"  NVARCHAR,

"PrivilegedProcessorTime"  NVARCHAR,

"StartTime"  DATETIME,

"ExitTime"  DATETIME,

"Domain"  NVARCHAR,

"UserName"  NVARCHAR,

"FileName"  NVARCHAR,

"Arguments"  NVARCHAR,

"WorkingDirectory"  NVARCHAR,

"CreatedTime"  DATETIME,

PRIMARY KEY ("Id" ASC),

CONSTRAINT "PK_Id" UNIQUE ("Id" ASC)

)

举例:

今天是2017-08-10,要删除7天前的数据,也就是说,所有小于等于2017-08-03都要被删掉。

写法1:忽略时间精度,直接比较日期,删除N天前的数据。

DELETE FROM StatisticsData WHERE date(‘now‘, ‘-7 day‘) >= date(CreatedTime);

 写法2:计算时间精度,比较日期和时间,删除N天前的数据。

DELETE FROM StatisticsData WHERE julianday(‘now‘) - julianday(CreatedTime) >= 7;

有关时间运算和比较函数的官方教程:http://www.sqlite.org/lang_datefunc.html

翻译自官网的中文参考:http://www.cnblogs.com/ygm900/p/4460644.html

时间: 2024-11-10 15:45:24

SQLite的时间差判断--删除N天前的数据的两种写法的相关文章

MySQL中删除数据的两种方法

转自:http://blog.csdn.net/apache6/article/details/2778878 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句. DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE table1 其

关于Mysql删除表数据的两种方式对比

1.delete from table_name 一行一行删除,只删除表数据,auto_increament仍停留在最后一天数据的下一个值. 2.truncate table_name 快捷删除表数据.先删除整个表,然后重新建表结构.auto_increament从1开始. 关于Mysql删除表数据的两种方式对比,布布扣,bubuko.com

判断python字典中key是否存在的两种方法

今天来说一下如何判断字典中是否存在某个key,一般有两种通用做法,下面为大家来分别讲解一下: 第一种方法:使用自带函数实现. 在python的字典的属性方法里面有一个has_key()方法,这个方法使用起来非常简单. 例: 1 2 3 4 5 #生成一个字典 d = {'name':{},'age':{},'sex':{}} #打印返回值 print d.has_key('name') #结果返回True 第二种方法:使用in方法 1 2 3 4 5 #生成一个字典 d = {'name':{}

oracle数据库删除数据的两种方式

当表中的数据不需要是,则应该删除该数据,并释放所占用的空间; 删除表中的数据有delete和truncate两种方式,下面分别介绍: 一.delete语句 (1)有条件删除    语法格式:delete [from]  table_name  [where condition]; 如:删除users表中的userid为'001'的数据:delete from users where userid='001'; (2)无条件删除整个表数据 语法格式:delete  table_name; 如:删除

oracle删除表数据的两种的方式

转自:https://blog.csdn.net/qq_37840993/article/details/82490787 平时写sql中我们都会用到删除语句,而平时删除表数据的时候我们经常会用到两种方式: 在oracle中,truncate.delete都可以删除表数据,具体的区别以及sql语法如下: truncate table [表名]; delete from [表名]; delete与truncate的区别:delete:会产生rollback,如果删除大数据量的表速度会很慢,而且同时

linux下日志自动清理(find删除30天前的数据)

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧. 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30

ibatis删除N天前的数据

<delete id="removeWxMessageByTime"> delete from wx_message where created_at <isLessThan compareValue="#created_at#"></isLessThan> </delete> 定时器: 定时任务:

删除表中数据的两种方法(delete删)

1.通过点击按钮来执行删除表中数据.(数据库和表的创建不在详细介绍,请自动阅读数据库和表的创建) 第一种方法:直接使用SQL来操作数据库,调用execSQL(sql)语句 public class MainActivity extends AppCompatActivity { private Button mDeleteButton; private MySqliteHelper mMySqliteHelper; private SQLiteDatabase db; @Override pro

判断系统是大端还是小端的两种方法

#include <iostream> #include <stdio.h> #include <malloc.h> #include <string.h> using namespace std; //判断系统是大端还是小端:通过将&int转换为char* int fun() { int num = 1; // *((char*)&num)获得num的最低字节,为0x00,说明是大端 为0x01,说明是小端 return *((char*)