首页 > 解决方案 > boto3 dynamodb 扫描过滤器在 demicals 中的日期时间纪元之间

问题描述

我正在尝试查询纪元、十进制格式的属性时间戳。目的是过滤一天中存在的所有项目。

我有下面的查询,也尝试了该between子句,但都给了我一个空的回报。

from boto3.dynamodb.conditions import Attr
from datetime import datetime
from decimal import Decimal

start = datetime(2020, 5, 25).strftime('%s')
end = datetime(2020, 5, 26).strftime('%s')
response = table.scan(
            FilterExpression = \
                Attr('timestamp').gte(Decimal(start)) & \
                Attr('timestamp').lt(Decimal(end))
            )
print(response)

但是,我发现单独使用gte(大于)或lt(小于)会返回正确的响应,这令人困惑为什么它们不能一起工作。任何人都可以帮忙吗?

标签: python-3.xboto3dynamodb-queries

解决方案


根据您的扫描查询,交换开始日期和结束日期的值,因为 start 应该更旧

start = datetime(2020, 5, 25).strftime('%s')
end = datetime(2020, 5, 26).strftime('%s')

推荐阅读