如何只在sqlite数据库中保存时间?

时间:2014-01-25 23:14:32

标签: sqlite

如何在我的sqlite数据库中保存任何时间(格式:HH:MM:SS)? 我不需要约会,只需要时间。

3 个答案:

答案 0 :(得分:1)

SQLite没有日期时间storage format 您可以使用不同类型的字段来存储和函数来读取值。

尝试将其存储为具有所需格式的字符串。它应该工作。

答案 1 :(得分:0)

DATEDATETIME SQL类型都作为NUMERIC类型存储在SQLite中。除了使用CAST之外,NUMERIC类型几乎与INTEGER相同。因此,剥离日期和仅存储时间没有太大的优势,如整数所说 - 它不会对底层存储产生影响。

继续存储DATETIME,并仅在您的演示文稿图层中提取当天的时间,以显示时间。更严格的是,始终将日期设置为常量,例如纪元,只添加一天的时间。然后,您可以在必要时将unixepoch修饰符与SQLite date functions一起使用。

例如,

SELECT time(1092941466, 'unixepoch', 'localtime'); 

计算时间给定时间戳为1092941466(包括日期),补偿您当地的时区,并仅显示当天的时间部分:

Example output: 04:51:06

答案 2 :(得分:0)

您可以使用触发器更新DATETIME字段以仅包含时间或日期。例如,您可以创建一个触发器来插入表名“logs”以优化时间和日期字段,如下所示:

CREATE TRIGGER "on_insert_logs"  AFTER INSERT ON "logs"

BEGIN 
UPDATE logs SET time = time(time(), 'localtime')  WHERE id = new.id;
UPDATE logs SET date= date(date(), 'localtime')  WHERE id = new.id;

END