GVKun编程网logo

在android中使用sqlite的strftime函数

21

最近很多小伙伴都在问在android中使用sqlite的strftime函数这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Android中使用SQLite3命令行查看内嵌数据库的

最近很多小伙伴都在问在android中使用sqlite的strftime函数这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Android中使用SQLite3 命令行查看内嵌数据库的方法、Android中使用Sqlite数据库、Android中的SQLite数据库、Android中的System.currentTimeMillis()数据保存在Sqlite中后的查询问题等相关知识,下面开始了哦!

本文目录一览:

在android中使用sqlite的strftime函数

在android中使用sqlite的strftime函数

您好我已在我的数据库中插入了一些日期.

当我在我的查询中使用时,我在另一个表中以YYY-MM-DD格式使用sqlite3

SELECT * 
FROM SDay 
WHERE  strftime(''%Y-%m-%d'',date)>=strftime(''%Y-%m-%d'',''2013-02-21'')
    AND  strftime(''%Y-%m-%d'',date)<strftime(''%Y-%m-%d'',''2013-09-15'')

它工作得很好.

另一方面,当我在另一个表中使用格式YYY-MM时
那么

SELECT * 
FROM SMonth 
WHERE  strftime(''%Y-%m'',date)>=strftime(''%Y-%m'',''2013-02'') 
    AND  strftime(''%Y-%m'',date)<strftime(''%Y-%m'',''2013-09'')

不会起作用.为什么会发生这种情况,我该如何解决?

谢谢.

解决方法

在第二个语句中,strftime提供了无效的时间字符串.这会导致函数返回NULL:

sqlite> .nullvalue <NULL>
sqlite> select strftime(''%Y-%m'',''2013-02'');
<NULL>

只需将日期添加到您提供的日期即可正常运行:

sqlite> select strftime(''%Y-%m'',''2013-02-01'');
2013-02

您可以找到有效时间字符串格式here的列表.

Android中使用SQLite3 命令行查看内嵌数据库的方法

Android中使用SQLite3 命令行查看内嵌数据库的方法

在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令。

【1】在Android程序中,一般创建的数据库存放在 /data/data/[应用程序包名]/databases 的目录下。

【2】cd 命令:文件夹跳转命令。ls 命令:查看某个文件夹下面有哪些文件。

【3】使用 "sqlite3 [数据库名称] " 命令来对某数据库进行一系列的操作。

【4】在经过第【3】步骤后,可以使用 .tables 命令查看某数据库中包含哪些表。若要查询某表中包含的数据,在 sqlite> 命令后输入查询的sql语句即可查询,但要注意的是要以分号[;]来结束该语句的输入。

【5】若在命令行中输入 adb shell 后,提示:adb不是内部或外部命令,也不是可运行的程序,或批处理文件,遇到这种情况是由于环境变量没有设置好的问题导致的。解决方法:在安装的Android sdk 包目录下的找到adb工具所在目录,一般是在...\android-sdk-windows\tools目录或者在...\android-sdk-windows\platform-tools目录下。把该目录添加到path环境变量中就OK了。

ps:命令行查看android sqlite数据库

命令行查看sqlite数据库:

启动模拟器

命令行cd 到android-sdk-windows\platform-tools目录
adb shell    //进入模拟器
cd /data/data/yourpackagename/      //进入到软件安装目录
cd databases  //进入到数据库目录
ls   //查看现有的数据库,如果创建过应该有个XXXX.db
sqlite3 XXXX.db   //用sqlite3工具打开数据库
//下面是sqlite3命令
sqlite> .tables   //查看数据库里面的表 本例应该能看到表YYYY
sqlite> .schema YYYY   //查看表结构
sqlite> select * from YYYY;  //查询表

Android中使用Sqlite数据库

Android中使用Sqlite数据库

请问一下高手们在折线图的程序中怎么添加SQLite数据库,能够读取数据,读取的数据能够显示在折线图上?

Android中的SQLite数据库

Android中的SQLite数据库

大家好,

我是android的菜鸟,需要一些帮助…

我正在开发一个应用程序,要求我在一个活动中写一个sqliteDatabase并从另一个活动访问它.我在执行此操作时遇到了问题.关于如何在多个活动之间共享数据库的任何建议/想法…?

最佳答案
我建议您使用SQLiteOpenHelper类.

只需在整个活动中始终使用相同的数据库名称,就不会造成任何问题.

sqliteOpenHelper helper = new sqliteOpenHelper(
    context,R.string.db_name,null,1);
sqliteDatabase db = helper.getWritableDatabase();

Android中的System.currentTimeMillis()数据保存在Sqlite中后的查询问题

Android中的System.currentTimeMillis()数据保存在Sqlite中后的查询问题

一定要看到最后

在android中System.currentTimeMillis()获取的数据保存在sqlite后按日期查询时如果按以下写法

select id,recordtext,addTime,DATEtime(addtime, ''unixepoch'') from tbname

查询的结果是这样的:

 

 查询后发现SQLITE支持的日期格式:

SQLite 支持以下五个日期和时间函数:

 

序号 函数 实例
1 date(timestring, modifier, modifier, ...) 以 YYYY-MM-DD 格式返回日期。
2 time(timestring, modifier, modifier, ...) 以 HH:MM:SS 格式返回时间。
3 datetime(timestring, modifier, modifier, ...) 以 YYYY-MM-DD HH:MM:SS 格式返回。
4 julianday(timestring, modifier, modifier, ...) 这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。
5 strftime(format, timestring, modifier, modifier, ...) 这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。


 这个和我们用到的无关,我们是从JAVA的System.currentTimeMillis()中得到的,经过分析上面的示例发现只要把我们的数据除以1000就可以被Sqlite正常转换了,代码如下

 

select id,addTime,DATEtime(addTime/1000, ''unixepoch'') from soundrecord

执行后结果就是:

 

 运行正常!

希望能帮到朋友们!

我们今天的关于在android中使用sqlite的strftime函数的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android中使用SQLite3 命令行查看内嵌数据库的方法、Android中使用Sqlite数据库、Android中的SQLite数据库、Android中的System.currentTimeMillis()数据保存在Sqlite中后的查询问题的相关信息,请在本站查询。

本文标签: