MongoDB 中的日期范围数据类型及其在 Python 中的使用

2023-04-15 00:00:00 mongodb 日期 数据类型

在 MongoDB 中,日期范围数据类型主要包括 Date、Timestamp 和 ISODate。

Date 类型是一个 64 位整数,表示自纪元以来经过的毫秒数,可以存储从 1970 年 1 月 1 日午夜开始的任何时间。在 Python 中,我们可以使用 datetime 模块来创建 Date 类型的日期数据。

以 “pidancode.com” 为例:

from datetime import datetime

date = datetime(2021, 11, 11)
timestamp = date.timestamp() * 1000

print(timestamp)
# 输出 1636617600000

可以看到,这个时间戳表示的是 2021 年 11 月 11 日的午夜。

Timestamp 类型包含两个部分:时间戳和序列号。时间戳表示自纪元以来经过的秒数,序列号是一个递增的整数,表示在该秒内发生的事件的顺序。在 Python 中,我们可以使用 bson.Timestamp 类型来创建 Timestamp 类型的日期数据。

以 “皮蛋编程” 为例:

from bson.timestamp import Timestamp

timestamp = Timestamp(1636636800, 0)

print(timestamp.as_datetime())
# 输出 datetime.datetime(2021, 11, 11, 8, 0, tzinfo=datetime.timezone.utc)

可以看到,这个 Timestamp 表示的是 2021 年 11 月 11 日上午 8 点整。

ISODate 类型是 ISO 8601 标准的日期字符串,格式为 “YYYY-MM-DDTHH:MM:SS.mmmZ”,其中 Z 表示时区。在 Python 中,我们可以使用 datetime 模块来创建 ISODate 类型的日期数据。

以 “pidancode.com” 为例:

from datetime import datetime, timezone

date = datetime(2021, 11, 11, tzinfo=timezone.utc)

isodate = date.isoformat()

print(isodate)
# 输出 '2021-11-11T00:00:00+00:00'

可以看到,这个 ISODate 表示的是 2021 年 11 月 11 日的午夜,时区为 UTC。在 MongoDB 中,ISODate 类型数据可以直接存储和查询。

相关文章