GVKun编程网logo

android – 如何在SQLite中将毫秒转换为日期(sql将毫秒值转换为日期)

12

对于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 – 如何在SQLite中将毫秒转换为日期(sql将毫秒值转换为日期)

我在sqlite DB中存储Calendar.getTimeInMilliseconds()的日期.
我需要每个月在SELECT语句中标记第一行,所以我需要使用sqlite函数将转换时间(以毫秒为单位)转换为任何日期格式.如何避免这种情况?

解决方法

SQLite’s supported date/time formats之一是Unix时间戳,即自1970年以来的秒数.
要将毫秒转换为,只需除以1000.

然后使用一些date/time function获得年份和月份:

SELECT strftime('%Y-%m',MillisField / 1000,'unixepoch') FROM MyTable

Android java.util.concurrent.TimeUnit将毫秒转换为分钟

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日期

android – 在SQLite中获取MAX日期

我使用sqlite作为我的 Android应用程序的数据存储.我创建了一个包含datetime类型列的表.当我插入记录或选择语句时,我使用格式dd.MM.yyyy(10.08.2012)作为日期.

现在,我遇到了使用最新/ 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中获取日期差异

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列设置默认值?

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列设置默认值?的相关知识,请在本站寻找。

本文标签: