【问题标题】:Store just time存储时间
【发布时间】:2018-01-02 04:12:04
【问题描述】:

所以我需要存储时间,以便检查它们之间是否有另一个时间,但是日期无关紧要,所以我宁愿不存储它以尽量减少混淆。在 MongoDB 中存储“2:02am”时刻的最佳方式是什么?

【问题讨论】:

  • 这不是一个好主意。如前所述,最小的“可变字符串长度”(在 MongoDB 中不能有固定的字符串长度)需要 6 个字节(4 个字符加上分隔符加上长度字节)。 BSON 日期在内部存储为包含整个日期的“4 字节整数”。如果您尝试将这个数字设为数字,那么您可能会以“2 字节”的“一天中的分钟数”为最大值,将1440 作为最大值。但是任何进一步的精度都需要超过 2 个字节,因此您也可以使用 BSON 日期,无论如何它只使用 4 个字节。所以要从逻辑上思考问题。

标签: mongodb datetime time momentjs


【解决方案1】:

有点自以为是的问题,但使用军事时间作为字符串可能是您最好的选择:"02:02" 表示凌晨 2:02,"14:02" 表示下午 2:02。

您需要小心正确地处理“翻转”,其中的时间介于 "23:00" 和第二天 "01:00" 之间,具体取决于您的用例。

另一种方法是将时间转换为数字分钟 (0-1440) 或秒 (0-86400),具体取决于所需的精度,这将导致更小的存储需求和更快的搜索。

【讨论】:

  • 建议存储一个“字符串”和一个比任何可能的时间数字表示更长的长度是合适的做法,这不仅是自以为是,而且老实说是非常不负责任的。
  • 让比较也变得更加昂贵。
  • 很公平,添加了数字选项。
猜你喜欢
  • 1970-01-01
  • 2010-10-25
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
相关资源
最近更新 更多