不同类型的SQLite时间戳值

时间:2014-02-03 11:27:27

标签: java sqlite

我在sqlite数据库中存储了一个Timestamp值,但是当我以字符串格式访问它时,它给了我正确的时间,但当我尝试以长,时间和时间戳格式访问它时,它给出了我错了。  如何以常规时间格式正确使用它?

 Creating Table
              String sql = "CREATE TABLE IF NOT EXISTS graphTable " +

                        "(TIME TIMESTAMP NOT NULL DEFAULT current_timestamp) " ; 

   /* Access the value from database using java code */

     ResultStatement rs = stmt.executeQuery( "SELECT TIME FROM graphTable ;" );

          while ( rs.next() ) {

                Date resultdate = new Date(rs.getLong()*1000);
                Millisecond ms_read = new Millisecond(resultdate);
               System.out.println( "TIME = " + ms_read );

               }

2 个答案:

答案 0 :(得分:1)

如果您想要unixtime,请使用strftime('%s', ...)

SELECT strftime('%s', time) FROM graphTable;

// now access the column as long

如果要转换为Java毫秒值,只需乘以1000。

进一步阅读:http://www.sqlite.org/lang_datefunc.html

答案 1 :(得分:1)

从数据库中提取时间戳值时,请使用此包

import java.sql.Date;
而非import java.util.Date;

存储该值

修改

首先定义如下格式,然后尝试转换它。

SimpleDateFormat DFTS = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String formatteddate=DFTS.format(d);
d是数据库

的日期