1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
當(dāng)使用類似的函數(shù)時(shí),SQLite 提供高達(dá)毫秒的精度julianday()
,因?yàn)橹挥星叭粩?shù)字(點(diǎn)后)對結(jié)果很重要,正如日期和時(shí)間函數(shù)中提到的那樣,因此時(shí)間字符串14:14:04.446258
和都14:14:04.446377
被評估為14:14:04.446
和被認(rèn)為是平等的。
因此,您在幾毫秒內(nèi)獲得的結(jié)果是正確的。
如果你想要以微秒為單位的差異,你應(yīng)該添加 2 次的最后 3 位數(shù)字的差異:
select abs(CAST(
? ? ? ? (JulianDay(TIME1) - JulianDay(TIME2)) * 24 * 60 * 60 * 1000 * 1000 +?
? ? ? ? (substr(TIME1, -3) - substr(TIME2, -3))
? ? ? ? AS INTEGER
? ? ? ? )) diff_microsec?
from time_table;
但為了獲得更高的準(zhǔn)確性,您應(yīng)該使用strftime()以秒為單位的差值,然后添加以微秒為單位的差值:
select abs((strftime('%s', TIME1) - strftime('%s', TIME2)) * 1000 * 1000 +?
? ? ? ? ? ?(substr(TIME1, -6) - substr(TIME2, -6))
? ? ? ?) diff_microsec?
from time_table;
或者:
select abs((strftime('%s', TIME1) - strftime('%s', TIME2)) * 1000 * 1000 +?
? ? ? ? ? ?(substr(TIME1, instr(TIME1, '.') + 1) - substr(TIME2, instr(TIME1, '.') + 1))
? ? ? ?) diff_microsec?
from time_table;
請參閱演示。
- 1 回答
- 0 關(guān)注
- 269 瀏覽
添加回答
舉報(bào)