sqlite - 比较 java Date 和 SQLite Datetime
问题描述
我想比较两个日期,即今天的日期和我的数据添加到数据库的日期。我可以将我Date
的 toString
和String
to转换为Date
,但在我的数据库中,“日期”列的类型是DATETIME
。(我正在使用 SQLite)我如何比较这两个日期?
我的目标是每天只在数据库中添加 1 行
我 atteched 一些示例代码:
if(currentDate.equals(dateAdded))
//some warning...
else
applyNewDataToDB();
谢谢,任何答案将不胜感激
解决方案
在 SQLite 中,所有本机时间戳都是日期/时间值 - 但使用格式化函数,您可以只过滤掉时间,或只过滤日期,或两者兼而有之:参见https://www.sqlite.org/datatype3.html结合https: //www.sqlite.org/lang_datefunc.html
使用以下表格布局:
CREATE TABLE myTable (ID INTEGER primary key, theData VARCHAR(4), theDatetime REAL) ;
查询:
SELECT ID, theData
FROM myTable
WHERE strftime('%Y-%m-%d', theDatetime,'unixepoch') >="2019-11-04" ;
相当于:
SELECT ID, theData
FROM myTable
WHERE theDatetime >= 1572853740.0 ;
推荐阅读
- ruby-on-rails - heroku 向下迁移和回滚
- c++ - 使用 BOOST::serialization 将二进制存档写入共享内存
- python - 与滚动区域宽度相关的画布项宽度
- database - 烧瓶和连接到数据库混淆
- swift - SwiftUI:如何将手绘图保存为 UIImage
- flutter - 什么是 Future 以及如何使用它?
- php - 使用 ajax .serializeArray() 更新多行
- javascript - 如何多次显示 span id 数据?
- python - 实现选择类型的 Python 数据类
- formula - Netsuite - 保存的搜索公式(文本)案例语句乘以 2 个字段