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

MongoDB中查询字符串类型timestamp字段的最大最小值

查询字符串格式Timestamp字段的最大/最小值

由于你的myUpdateTime字段是ISO 8601标准格式的字符串(示例:"2021-11-08T17:42:30.650Z"),这类字符串的排序逻辑和时间先后完全一致,所以可以直接用常规聚合函数查询最大最小值,也可以转换为原生时间类型后查询(更严谨)。以下是几种主流数据库的实现方式:

1. MySQL

直接用字符串排序查询

SELECT 
  MAX(myUpdateTime) AS max_update_time,
  MIN(myUpdateTime) AS min_update_time
FROM your_table_name;

转换为时间类型后查询(更严谨)

SELECT 
  MAX(STR_TO_DATE(myUpdateTime, '%Y-%m-%dT%H:%i:%s.%fZ')) AS max_update_time,
  MIN(STR_TO_DATE(myUpdateTime, '%Y-%m-%dT%H:%i:%s.%fZ')) AS min_update_time
FROM your_table_name;

2. PostgreSQL

直接用字符串排序查询

SELECT 
  MAX(myUpdateTime) AS max_update_time,
  MIN(myUpdateTime) AS min_update_time
FROM your_table_name;

转换为时间类型后查询

SELECT 
  MAX(TO_TIMESTAMP(myUpdateTime, 'YYYY-MM-DD"T"HH24:MI:SS.US"Z"')) AS max_update_time,
  MIN(TO_TIMESTAMP(myUpdateTime, 'YYYY-MM-DD"T"HH24:MI:SS.US"Z"')) AS min_update_time
FROM your_table_name;

3. MongoDB

直接用字符串排序查询

db.your_collection.aggregate([
  {
    $group: {
      _id: null,
      max_update_time: { $max: "$myUpdateTime" },
      min_update_time: { $min: "$myUpdateTime" }
    }
  }
])

转换为时间类型后查询

db.your_collection.aggregate([
  {
    $group: {
      _id: null,
      max_update_time: { $max: { $toDate: "$myUpdateTime" } },
      min_update_time: { $min: { $toDate: "$myUpdateTime" } }
    }
  }
])

注意:如果字符串格式非标准ISO 8601,需先统一格式再执行查询,但你的示例为标准格式,直接用字符串聚合即可得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:43:12