如何过滤 dynamodb 之间start_date和end_date以 UTC 格式存储的日期?
dynamodb.scan({
TableName : TEMP_TABLE_NAME,
FilterExpression : 'start_date between :start_date and :end_date',
ExpressionAttributeValues: {
":start_date": {
"S": "2017-08-16"
},
":end_date": {
"S": "2017-08-15"
}
}
}, function(err, data) {
console.log(err);
context.succeed(data);
});
Run Code Online (Sandbox Code Playgroud)
如果您以正确的格式存储日期,您应该能够执行 BETWEEN 操作。
\n\n问题是 - DynamoDB 本身并不支持日期/时间戳数据类型。
\n\n您可以以字符串或数字格式存储日期/时间戳。AWS 文档
\n\n存储为字符串:
\n\n\n\n\n您可以使用字符串数据类型来表示日期或时间戳。\n 一种方法是使用 ISO 8601 字符串,如以下示例所示\n:
\n\n2016-02-15 2015-12-21T17:42:34Z 20150311T122706Z 有关详细信息,\n 请参阅http://en.wikipedia.org/wiki/ISO_8601。
\n
数字:
\n\n\n\n\n您可以使用数字数据类型来表示日期或时间戳。\n 一种方法是使用纪元时间\xe2\x80\x94自 1970 年 1 月 1 日 00:00:00 UTC 起的秒数例如,纪元时间 1437136300\n 表示 2015 年 7 月 17 日 12:31:40 UTC。
\n\n有关更多信息,请参阅http://en.wikipedia.org/wiki/Unix_time。
\n
只要您遵守所使用的数据类型的准则,您就可以对它们执行相关操作(即:BETWEEN),因为它们将被设计为按字母数字排序(假设所有数据都采用 UTC)。
\n| 归档时间: |
|
| 查看次数: |
6285 次 |
| 最近记录: |