我正在尝试运行一个简单的查询,该查询基于时间戳获取我的数据,如下所示:
SELECT *
FROM <table_name>
WHERE id = 1
AND usagetime = timestamp('2012-09-03 08:03:06')
WITH UR;
这似乎没有向我返回记录,而该记录存在于数据库中,标识为id = 1。
我在这里做错了什么?
列usingtime的数据类型正确,设置为timestamp。
最佳答案
@bhamby是正确的。通过将时间戳值设置为微秒,您的查询将仅在2012年9月3日08:03:06.000000的使用时间上匹配
如果您没有从上一个查询中捕获的完整时间戳值,则可以指定一个范围谓词,该谓词将与该时间的任何微秒值匹配:
...WHERE id = 1 AND usagetime BETWEEN '2012-09-03 08:03:06' AND '2012-09-03 08:03:07'
或者
...WHERE id = 1 AND usagetime >= '2012-09-03 08:03:06'
AND usagetime < '2012-09-03 08:03:07'
关于DB2 Timestamp选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251802/