Sna*_*ler 3 sqlite time android
我有一个用户“工作时间”存储在 SQLite 中,就像HH:MM在我的 Android 应用程序中一样。如果可能的话,我不想改变这些数据的存储方式。那将是一场噩梦。我希望他们能够搜索时间为=、<或>其他时间戳的条目。
例如,使用我的应用程序,他们可以创建WHERE如下子句:time(Hours) > time('5:51')whereHours是列名称。但是,即使我知道有匹配的行,我似乎也无法得到任何结果。
难道我做错了什么?我没有得到任何例外,只是没有结果。
time 不会接受持续时间,除非它们恰好也是有效时间。因此,即使有人可以工作 40 小时:
SELECT (time('40:00') IS NULL);
Run Code Online (Sandbox Code Playgroud)
给出 1(表明这是一个错误)。
SELECT (time('11:00') IS NULL);
Run Code Online (Sandbox Code Playgroud)
是 0。但想必两者都需要工作。
幸运的是,如果您坚持使用两位数的小时和两位数的分钟,则可以将它们作为普通字符串进行比较。
SELECT '84:13' > '29:03';
1
SELECT '05:12' > '43:58';
0
Run Code Online (Sandbox Code Playgroud)
编辑:更好的解决方案可能是将分钟数简单地存储为 INTEGER (SQLite基本类型之一)。是的,您需要进行一次性升级转换,但我认为这是一个更好的选择。
您具有完全的精度,可以轻松地相乘(例如按小时费率),如果您想在某些报告中显示为 HH:MM,那么它是一个简单的模数。
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |