我需要在SQLite中区分两个时间戳。 在搜索时,我发现Here's a bootply to show code in action,虽然接受的答案似乎乍一看似乎有效,但它失去了很多精确度:
接受此查询
select timestamp, EndTimeStamp, ((julianday(EndTimeStamp)-julianday(timestamp)) * 86400.0) as Duration from X
我得到了这个结果:
"2016-04-18 13:44:31.630916" "2016-04-18 13:44:31.63114" "0.00100582838058472"
"2016-04-18 13:44:31.6315231" "2016-04-18 13:44:31.6316997" "0.0"
"2016-04-18 13:44:31.6320359" "2016-04-18 13:44:31.632202" "0.0"
"2016-04-18 13:44:31.6326964" "2016-04-18 13:44:31.6329361" "0.0"
如您所见,最后三个结果的计算差值为零,但时间戳实际上是不同的。
在SQL中,使用DATETIME字段类型是否可以计算精确的差异?我宁愿不需要回退到C#。
答案 0 :(得分:1)
作为documented,由内置日期/时间函数解释的格式为:
YYYY-MM-DD HH:MM:SS.SSS
换句话说,它们只解析小数秒的前三位数。
您可以尝试使用substr()
提取其他数字,并将其添加到具有正确比例的结果中。