Winfrom/CSharp中获取当前时间戳字符串、存储Sqlite数据库、时间戳转换与比较大小
创始人
2024-05-29 18:45:55
0

场景

Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作:

Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作_霸道流氓气质的博客-CSDN博客

在上面Winform中操作Sqlite的基础上,存储数据时需要获取当前时间戳字符串进行存储。

然后在查询时筛选数据,比如查询是否是7天内的数据,就需要根据存储的时间戳字符串与

当前时间进行大小比较。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi 

实现

1、获取当前时间戳字符串

        public static String getCurrentTimeSpan() {TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);string timeSpan = Convert.ToInt64(ts.TotalSeconds).ToString();return timeSpan;}

请注意:这里获取的单位是秒。

2、时间戳转换

从数据库中读取存储的时间戳字符串

long timestamp = long.Parse(reader.GetString(reader.GetOrdinal("timestamp")));

则可以直接使用long.Parse进行转换。

或者可以直接在数据库中存储long型数据,则取出时不需要进行转换。

3、时间戳大小比较

        //判断时间戳与当前时间对比是否大于指定时长public static bool filterTooLongDataWithNow(long oldTime, long threshold){TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);long nowTimeSpan = Convert.ToInt64(ts.TotalSeconds);if (nowTimeSpan - oldTime > threshold){return true;}else {return false;}}

这里是将数据库中存储的数据与当前时间戳进行大小比较,如果相差指定的threshold,则返回对应的判定结果。

调用示例:

                        //判断是7天内的数据再上传long timestamp = long.Parse(reader.GetString(reader.GetOrdinal("timestamp")));bool result = ConvertUtils.filterTooLongDataWithNow(timestamp, filterDateThreshold); 

其中filterDateThreshold是7天

private long filterDateThreshold = 60 * 60 * 24 * 7;

业务逻辑示例

                SQLiteDataReader reader = Global.Instance.sqlLiteHelper.ExecuteQuery("SELECT* FROM positions LIMIT 100;");if (reader.HasRows) {while (reader.Read()){//判断是7天内的数据再上传long timestamp = long.Parse(reader.GetString(reader.GetOrdinal("timestamp")));bool result = ConvertUtils.filterTooLongDataWithNow(timestamp, filterDateThreshold);                   //7天之前的数据直接删除if (result){//删除数据Global.Instance.sqlLiteHelper.ExecuteQuery("DELETE FROM positions WHERE timestamp = " + reader.GetString(reader.GetOrdinal("timestamp")) + ";");}//如果是7天内数据,则断线上传之后再删除else {}                      }}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...