python-3.x - 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
(小于)会返回正确的响应,这令人困惑为什么它们不能一起工作。任何人都可以帮忙吗?
解决方案
根据您的扫描查询,交换开始日期和结束日期的值,因为 start 应该更旧
start = datetime(2020, 5, 25).strftime('%s')
end = datetime(2020, 5, 26).strftime('%s')
推荐阅读
- c# - C# - 添加表时 SQLite 抛出“数据库未打开”错误
- string - MIPS 函数返回类型
- reactjs - 猫鼬 findOne 方法返回 null
- java - 如果两个字符串有空格,如何比较它们?
- php - 将 csv 导入到两个表 MYSQL - Codeigniter
- c# - 尝试获取 DicomDataset 时获取“DicomTag 不支持值”
- erlang - 在创建节点后,我可以将 erlang 节点设置为“隐藏”,或者将“connect_all”设置为 false 吗?
- java - 使用 instanceof + 转换对象检查对象与覆盖方法?
- node.js - node.js模块导出如何使用所有模块中的数据?
- algorithm - 为什么创建调用二叉树的递归方法的空间复杂度为 O(h)?