SQLite的日期时间的存储
来源:互联网 发布:如何改淘宝店铺名字 编辑:程序博客网 时间:2024/06/15 17:35
转载自https://segmentfault.com/a/1190000003008234
SQLite中,原始的存储只有以下几种(SQLite文档):
- NULL。只有null。
- INTEGER。有符号整数,根据值的大小存储在1-4字节中。
- REAL。浮点数,储存为8字节的IEEE浮点数。
- TEXT。文字字符串,根据数据库编码存储(UTF-8/UTF-16BE/UTF-16LE)
- BLOB。纯数据储存。
Android和Java怎么做
Java中,时间和日期相关类主要是以下:
java.util.Date
和它的子类:
java.sql.Date
java.sql.Time
java.sql.Timestamp
以及相关的操作类:
java.util.Calendar
java.util.GregorianCalendar
用哪个?
其中,java.sql
下的Date
和Time
分别是“阉割”了的java.util.Date
,而java.sql.Timestamp
是强化版增加了微秒的java.util.Date
,综上所述,一般而言,用java.util.Date
即可。
怎么用?
Java中日期和时间都是通过1970年后的毫秒数来储存的,所以,我们在数据库种只需要存储日期时间
的毫秒数即可,调用
java.util.Date date = new java.util.Date();long datetime = date.getTime();
数据库可以这么定义:
CREATE TABLE IF NOT EXISTS Journal( id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT, writeTime INTEGER);
这个地方其实我被折腾了很久,因为Java中用long
来存储毫秒数,即int64
,但SQLite中只有INTEGER
,后来看了文档,这里的INTEGER
是支持1-4字节,即可以存储long
。
插入可以这么来:
java.util.Date writeTime = new java.util.Date();ContentValues values = new ContentValues();values.put("content", content);values.put("writeTime", writeTime.getTime());
按日期查找……WTF?
日期区间查找
由于在数据库内部使用了毫秒的方式储存时间日期,那对于某一个日期,比如2015-07-21这一天的内容如何查找?
其实也就是查找2015-07-21 00:00:00到2015-07-22 00:00:00之间的数值,我们造一个就是了。
首先,获取当前时间
Date now = new Date();
将它处理:
GregorianCalendar cal = new GregorianCalendar();cal.setTime(now);//可以根据需要设置时区//cal.setTimeZone(TimeZone.getDefault());cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);//毫秒可根据系统需要清除或不清除cal.set(Calendar.MILLISECOND, 0);long startTime = cal.getTimeInMillis();
结束时间加上即可:
long endTime = startTime + 24 * 3600 * 1000;
现在就可以查询了:
Cursor cursor = db.rawQuery("SELECT * FROM Journal WHERE “ + ”writeTime>=? and writeTime<?", new String[] { String.valueOf(startTime), String.valuesOf(endTime) });
阅读全文
0 0
- SQLite的日期时间的存储
- Android关于SQLite的日期时间的存储
- SQLite的日期时间函数
- SQLite的日期时间函数
- SQLite的时间/日期函数
- SQLite 的日期时间函数
- Sqlite的日期和时间
- 编程资料:SQLite的日期时间函数
- 日期和时间的存储与处理
- SQLite 处理日期、时间型数据的方法
- Python与SQLite日期时间函数的使用
- 记录一下SQLite里面的 时间日期函数
- SQLite的日期操作
- sqlite的日期类型
- Sqlite存储日期
- SQLite时间/日期函数
- SQLite时间/日期函数
- SQLite日期时间函数
- PL/SQL进行debug 包以及存储过程
- C# 如何在PDF文档中根据关键字查找文本并给文本设置背景颜色
- Salesforce如何使用标准批准过程实现自动审批
- Java自定义链表
- 理解机器学习中的偏差与方差
- SQLite的日期时间的存储
- 虚拟机CentOS7 不能上网问题解决,亲测有效
- highcharts柱状图
- BZOJ 4808: 马【二分图】【最大独立集】
- 如何中断当前线程
- 循环
- setcookie刷新后才生效问题
- VIN码识别:快、准、易是王道
- Qt之QComboBox定制