Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

จัดรูปแบบค่าวันที่ใน MongoDB Shell


ใช้ $dateToString ใน Aggregation Pipeline

Operator $dateToString แปลง Date/ISODate เป็น String ตามรูปแบบที่กำหนด ใช้ใน $project ของ aggregation

ตัวอย่างข้อมูล

> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2020-01-10") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2017-12-21") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2019-10-12") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2019-12-01") });

Query จัดรูปแบบวันที่ และเรียงลำดับ

> db.demo480.aggregate([
  { $match: { id: 1 } },
  { $sort: { DueDate: -1 } },
  { $project: {
      _id: 0,
      DueDate: { $dateToString: { format: "%Y-%m-%d %H-%M", date: "$DueDate" } }
  }}
]);

ผลลัพธ์

{ "DueDate": "2020-01-10 00-00" }
{ "DueDate": "2019-12-01 00-00" }
{ "DueDate": "2019-10-12 00-00" }
{ "DueDate": "2017-12-21 00-00" }

Format Specifiers ที่ใช้ได้

Timezone Option (MongoDB 3.6+)

{ $dateToString: { format: "%Y-%m-%d %H:%M", date: "$DueDate", timezone: "+07:00" } }

การใช้งานใน find() (MongoDB 4.4+)

db.demo480.find({}, { DueDate: { $dateToString: { format: "%Y-%m-%d", date: "$DueDate" } } });
Specifierคำอธิบายตัวอย่าง
%Yปี 4 หลัก2024
%mเดือน 01-1203
%dวัน 01-3115
%Hชั่วโมง 00-2314
%Mนาที 00-5930
%Sวินาที 00-5945
%Lมิลลิวินาที 000-999123
%jวันของปี 001-366074
%wวันของสัปดาห์ 0-6 (0=อาทิตย์)3
%%ตัว % ตรงตัว%