相关疑难解决方法(0)

如何从sqlite读取datetime作为日期时间而不是Python中的字符串?

我正在使用Python 2.6.4中的sqlite3模块在SQLite数据库中存储日期时间.插入它非常简单,因为sqlite会自动将日期转换为字符串.问题是,当它读取它时它会以字符串形式返回,但我需要重建原始日期时间对象.我该怎么做呢?

python sqlite datetime

62
推荐指数
2
解决办法
5万
查看次数

在SQLite数据库中存储日期时间值的最佳方法(Delphi)

我将日期时间值存储在SQLite数据库中(使用Delphi和DISqlite库).数据库的性质使得它永远不需要在计算机或系统之间传输,因此互操作性不是约束.我的重点是阅读速度.datetime字段将被编入索引,我将对其进行大量搜索,并按顺序读取数千个日期时间值.

由于SQLite没有datetime值的显式数据类型,因此有以下几种选择:

  • 使用REAL数据类型并直接存储Delphi的TDateTime值:最快,加载时不从字符串转换; 无法使用数据库管理器(如SQLiteSpy)调试日期,因为日期不会是人类可读的.不能使用SQLite日期函数(?)

  • 使用简单的字符串格式,例如YYYYMMDDHHNNSS:需要转换但在CPU上相对容易(不需要扫描分隔符),数据是人类可读的.仍然不能使用SQLite日期函数.

  • 做点别的.推荐的做法是什么?

我已经阅读了http://www.sqlite.org/lang_datefunc.html但是没有提到要使用的数据类型,并且没有在编程中正式学习,我不太关注朱利安日期.为什么要额外转换?我会仔细阅读这些值,因此字符串和TDateTime之间的任何额外转换都会增加成本.

delphi sqlite format datetime

8
推荐指数
2
解决办法
8264
查看次数

如何在Android下的SQLite中正确插入日期时间值?

我正在开发一个虚拟的 android 项目来解决问题。以下代码行破坏了我的 android 应用程序,没有任何错误。我使用 Idea 作为 IDE。

database.execSQL("Insert Into todos(uid, name, created_on, changed_on) values('6a7047ed-c2f9-407f-a774-1c02b0fe9caf', 'todo', DATETIME('NOW'), DATETIME('NOW'))");
Run Code Online (Sandbox Code Playgroud)

我确定数据库具有给定的列,如果我只是使用:

database.execSQL("Insert Into todos(uid, name) values('6a7047ed-c2f9-407f-a774-1c02b0fe9caf', 'todo')");
Run Code Online (Sandbox Code Playgroud)

应用程序按其应有的方式工作。

我试图插入这样的日期(基于与此事相关的回答问题):

 '2012-05-25 16:52:00'
Run Code Online (Sandbox Code Playgroud)

或者

 date('now')
Run Code Online (Sandbox Code Playgroud)

我得到了同样的崩溃,没有错误或调试日志。

我在这里缺少什么?

更新

根据要求,用于创建数据库表的代码。

    public static final String TABLE_TODOS = "todos";
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_UID = "uid";
    public static final String COLUMN_NAME = "name";
    public static final String COLUMN_CHECKED = "checked";
    public static final String COLUMN_TO_DELETE = "must_delete";
    public …
Run Code Online (Sandbox Code Playgroud)

sqlite android

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

sqlite ×3

datetime ×2

android ×1

delphi ×1

format ×1

python ×1