SQLite-将时间(如08:00)转换为整数

SQLite-将时间(如08:00)转换为整数,sql,sqlite,date,datetime,time,Sql,Sqlite,Date,Datetime,Time,请注意,我读到最好的方法(也是最有效的)是将时间节省为一个小整数(实数)。是真的吗?我正在构建使用SQLite3数据库的应用程序,数据库大小必须很小,并且使用日期和时间(特别是时间)计算必须是最有效的 我有这张桌子: CREATE TABLE events ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, time_start SMALLINT NOT NULL , time_end SMALLINT NOT NULL,

请注意,我读到最好的方法(也是最有效的)是将时间节省为一个小整数(实数)。是真的吗?我正在构建使用SQLite3数据库的应用程序,数据库大小必须很小,并且使用日期和时间(特别是时间)计算必须是最有效的

我有这张桌子:

CREATE TABLE events (
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    time_start SMALLINT NOT NULL ,
    time_end SMALLINT NOT NULL,
    message_code VARCHAR(64) NOT NULL,
    FOREIGN KEY (message_code) REFERENCES messages (message_code),
    CHECK ((time_start BETWEEN 0 AND 1440) AND (time_end between 0 and 1440) AND (message_code <> ''))
);
创建表事件(
id整数非空主键自动递增,
time\u start SMALLINT不为空,
时间\u end SMALLINT不为空,
消息代码VARCHAR(64)不为空,
外键(消息代码)引用消息(消息代码),
检查((时间从0到1440之间开始)和(时间从0到1440之间结束)以及(消息代码“”)
);
但事实上,我希望实时插入值,比如08:20,因为没有人希望计算8小时等于480分钟+20=500分钟

如何将('08:20')转换为数字500?我不需要用秒来计算

或者你认为使用DATETIME是更好的方法吗

PS:它是一个调度程序,在outlook中列出事件,如议程

非常感谢你的建议


向您致意,SQLite没有
DateTime
数据类型

您可以将值存储为
char(5)
strings-这将只占用五个字节。您可以直接比较这些值

sqlite> select '08:20' > '08:30';
0

sqlite> select '08:20' = '08:30';
0

sqlite> select '08:20' < '08:30';
1

是的,comparsion工作得很好:)非常感谢
sqlite> select time('08:20') = time('now');

sqlite> select time('08:20') = time('2018-01-01 05:30:59');