我使用SQLite与python。我有一个数据库有两个字段(时间戳,阅读)。大于比较的SQLite也返回相同的值。
时间戳是ISO8601字符串,格式如下:“YYYY-MM-DD HH:MM:SS.SSSSSS”。
当我运行该SQL查询:
SELECT timestamp, value FROM 'readings' WHERE timestamp > datetime('2017-08-30 14:19:28.684314')
我得到的所有地方的时间戳,因为提供的日期,但我也得从我传递的日期时间读数(在本例中的相应读数:“ 2017-08-30 14:19:28.684314')。
我的问题是为什么大于比较运算符假装它是一个大于或等于运算符?
嗯,而不是一个_SQLite_(事实上任何_DB_系统)专家,但有2件事情在我的脑海里:要么* micro * s被舍入为6位数,要么有一些转换涉及日期本地化(加/减)几小时/分钟。 – CristiFati
我曾考虑过这个问题,但是我否认了它,因为我认为系统会以相同的方式围绕相同的输入日期时间。这在理论上意味着即使舍入也不应该将输入值作为有效的响应返回。 – badrobit