You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Dynamodb中YYYY-DD-MM格式日期匹配当前日期查询报错问题

问题解决步骤

核心错误点

  • 表名写错:你的表实际叫DATETABLE,但代码里TableName填的是'date',导致查询了错误的表。
  • 日期格式不匹配:表中存储的是YYYY-DD-MM格式,而new Date().toISOString().split('T')[0]生成的是YYYY-MM-DD,格式对不上自然查不到数据。
  • 变量名混乱:错误提示提到:date,但你代码里用的是:todaydate,大概率是实际代码里表达式变量名和属性值的键拼写不一致。

修正后的代码

// 生成和表中一致的YYYY-DD-MM格式日期
const now = new Date();
const year = now.getFullYear();
const day = String(now.getDate()).padStart(2, '0');
const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需加1补正
const currentdate = `${year}-${day}-${month}`;

client.query({
  TableName: 'DATETABLE', // 修正为正确表名
  KeyConditionExpression: 'date = :todaydate',
  ExpressionAttributeValues: {
    ':todaydate': currentdate // 确保变量名和表达式完全对应
  }
})
.then(data => {
  // 直接通过返回条目数判断是否存在匹配数据
  if (data.Items.length > 0) {
    console.log('存在匹配当前日期的数据');
  } else {
    console.log('无匹配当前日期的数据');
  }
})
.catch(err => {
  console.error('查询失败:', err);
});

优化建议

如果只需要判断存在性,不需要返回全部数据,可以加Limit:1减少读取量,提升效率:

client.query({
  TableName: 'DATETABLE',
  KeyConditionExpression: 'date = :todaydate',
  ExpressionAttributeValues: {
    ':todaydate': currentdate
  },
  Limit: 1
})

内容的提问来源于stack exchange,提问作者aws demo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:10:44