You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Redash的MongoDB查询中将ISO日期转为dd-MM-yyyy HH:ss格式导入Google Sheets?

解决方案:在MongoDB查询中直接转换ISO日期为目标格式

没问题!要让Redash返回的MongoDB查询结果里,ISO日期直接变成dd-MM-yyyy HH:ss格式,不用再在Google Sheets里折腾公式,咱们可以用MongoDB的聚合管道配合$dateToString操作符来实现,一步到位。

核心思路

MongoDB的$dateToString操作符可以直接把日期类型字段转换成指定格式的字符串,你只需要在查询的$project阶段配置好格式规则,Redash返回的结果就会是现成的目标格式,导入Google Sheets时直接可用。

具体查询示例

假设你的集合名为your_collection,存储ISO日期的字段是iso_date,同时你还需要保留其他字段(比如user_idorder_amount),可以用下面的聚合查询:

db.your_collection.aggregate([
  // 可选:如果有查询条件,先加$match阶段过滤数据
  {
    $match: {
      // 这里写你的过滤条件,比如
      order_status: "completed"
    }
  },
  // 关键:用$project转换日期格式并保留需要的字段
  {
    $project: {
      user_id: 1,
      order_amount: 1,
      formatted_date: {
        $dateToString: {
          format: "%d-%m-%Y %H:%S",
          date: "$iso_date",
          // 可选:指定时区,避免日期偏移,根据你的业务时区调整
          timeZone: "Asia/Shanghai"
        }
      }
    }
  }
])

参数说明

  • format: "%d-%m-%Y %H:%S":对应你要的dd-MM-yyyy HH:ss格式:
    • %d:两位数字的日期(比如05、23)
    • %m:两位数字的月份(比如03、12)
    • %Y:四位数字的年份(比如2024)
    • %H:24小时制的两位数字小时(比如09、21)
    • %S:两位数字的秒数(比如07、59)
  • date: "$iso_date":指定要转换的日期字段(替换成你实际的字段名)
  • timeZone:可选参数,如果你的业务有特定时区需求,加上它可以避免日期因时区转换出现偏差。

导入Google Sheets的效果

把这个查询在Redash中配置好,获取查询结果的共享链接后,用Google Sheets的IMPORTDATA函数导入时,formatted_date列直接就是dd-MM-yyyy HH:ss格式的字符串,不需要再用TEXT或其他公式转换啦。

内容的提问来源于stack exchange,提问作者A. Laloo

火山引擎 最新活动