对于android–如何在SQLite中将毫秒转换为日期感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍sql将毫秒值转换为日期,并为您提供关于Androidjava.util.concurre
对于android – 如何在SQLite中将毫秒转换为日期感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍sql将毫秒值转换为日期,并为您提供关于Android java.util.concurrent.TimeUnit将毫秒转换为分钟、android – 在SQLite中获取MAX日期、android – 在sqlite中获取日期差异、android – 如何在Sqlite中为TEXT列设置默认值?的有用信息。
本文目录一览:- android – 如何在SQLite中将毫秒转换为日期(sql将毫秒值转换为日期)
- Android java.util.concurrent.TimeUnit将毫秒转换为分钟
- android – 在SQLite中获取MAX日期
- android – 在sqlite中获取日期差异
- android – 如何在Sqlite中为TEXT列设置默认值?
android – 如何在SQLite中将毫秒转换为日期(sql将毫秒值转换为日期)
我需要每个月在SELECT语句中标记第一行,所以我需要使用sqlite函数将转换时间(以毫秒为单位)转换为任何日期格式.如何避免这种情况?
解决方法
要将毫秒转换为,只需除以1000.
然后使用一些date/time function获得年份和月份:
SELECT strftime('%Y-%m',MillisField / 1000,'unixepoch') FROM MyTable
Android java.util.concurrent.TimeUnit将毫秒转换为分钟
有没有办法使用java.util.concurrent.TimeUnit将毫秒转换为分钟?
This answer似乎建议您可以使用TimeUnit.MILLISECONDS.toMinutes()方法,并且文档建议您可以将TimeUnit.MILLISECONDS.convert()方法与TimeUnit.MINUTES一起使用 – 问题在于TimeUnit.MINUTES或TimeUnit都没有.MILLISECONDS.toMinutes()似乎确实存在.
我在这里错过了什么吗?
解决方法:
我相信TimeUnit可能会在1.6:1.6 docs,1.5 docs中添加分钟
android – 在SQLite中获取MAX日期
现在,我遇到了使用最新/ MAX日期获取行的问题.我已经尝试使用MAX(date_column)语句,但它返回错误的日期.我在我的表中有以下日期,它返回31.07.2012而不是04.08.2012.谁知道我做错了什么?
04.08.2012 03.08.2012 02.08.2012 01.08.2012 31.07.2012 30.07.2012
以下是代码的一部分:
String selection = "measurementDate = (SELECT MAX(measurementDate) FROM Measurements)"; Cursor cursor = database.query("Measurements",allColumns,selection,null,null); cursor.movetoFirst(); ...
解决方法
您可以以不同的方式存储字符串YYYYMMDD,它应该正确地比较它们,或者,如果您可以修改表,则将日期存储为毫秒,并在需要时格式化回字符串.
This might help
android – 在sqlite中获取日期差异
我想获得今天和到期日之间的日期差异.这是我实现的代码.但这并没有返回正确的输出.
public String[] getDaysList(){
Cursor cursor = db.query("COUPON", null, null, null, null, null, null );
if(cursor.getCount()<1){
cursor.close();
return null;
}
String[] array = new String[cursor.getCount()];
int i=0;
while(cursor.movetoNext()){
String days = "(julianday('Now') - julianday(EXPIRED_DATE))";
array[i] = days;
i++;
}
return array;
}
这将返回(julianday(‘Now’) – julianday(EXPIRED_DATE)).请帮我在这里将日期差异作为字符串添加到数组中.
解决方法:
Now修饰符不仅返回日期,还返回时间.
要将时间戳更改为日期的开头,请使用date() function:
SELECT julianday(date('Now')) - julianday(EXPIRED_DATE) FROM ...
(如果过期列也包含时间值,则必须使用date().)
要实际执行此操作,您必须将其提供给数据库:
public String[] getDaysList() {
String days = "julianday(date('Now')) - julianday("+EXPIRED_DATE+")";
Cursor cursor = db.query("COUPON",
new String[]{ days }, // query returns one column
null, null, null, null, null);
try {
String[] array = new String[cursor.getCount()];
int i = 0;
while (cursor.movetoNext()) {
array[i++] = cursor.getString(0); // read this column
}
return array.length > 0 ? array : null;
} finally {
cursor.close();
}
}
(并且天数不是字符串;请考虑使用int [].)
android – 如何在Sqlite中为TEXT列设置默认值?
我有一张简单的桌子.我正在尝试将默认值放入TEXT列.这是表查询:
"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT '0', book_name TEXT NOT NULL);"
它创建表但我尝试插入数据时出现问题.我只是尝试给book_name一个书名,因为我预计book_id的列默认值为0.但它没有,它添加了空值,因此行不会插入.我也试过这个查询:
"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT \'0\', book_name TEXT NOT NULL);"
但问题仍然存在.我已经搜索了堆栈溢出,得到了一些答案,但它们已经老了,现在还不适合我.因此,如何在sqlite中将默认值设置为TEXT列有所改变.提前致谢 :)
编辑
这是insert语句:
database.insert("book", null, cv);
这里cv是ContentValues的对象,它只包含列book_name的值.
解决方法:
您可以在创建表时为列指定默认值. (看起来好像你不能使用ALTER语句添加默认值,所以你必须重新创建你的表.)
CREATE TABLE your_table_name
(MainContactName TEXT NOT NULL DEFAULT '')
例如,
CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT,book TEXT DEFAULT "abc");
现在看到,默认值设置为“abc”
检查sqllite documentation.
关于android – 如何在SQLite中将毫秒转换为日期和sql将毫秒值转换为日期的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android java.util.concurrent.TimeUnit将毫秒转换为分钟、android – 在SQLite中获取MAX日期、android – 在sqlite中获取日期差异、android – 如何在Sqlite中为TEXT列设置默认值?的相关知识,请在本站寻找。
本文标签: