- Reference >
- Operators >
- Aggregation Pipeline Operators >
- Date Aggregation Operators >
- $dateToString (aggregation)
$dateToString (aggregation)¶
On this page
Definition¶
- $dateToString¶
New in version 3.0.
Converts a date object to a string according to a user-specified format.
The $dateToString expression has the following syntax:
{ $dateToString: { format: <formatString>, date: <dateExpression> } }
The <formatString> can be any string literal, containing 0 or more format specifiers. For a list of specifiers available, see Format Specifiers.
The <dateExpression> can be any expression that evaluates to a date. For more information on expressions, see Expressions.
Format Specifiers¶
The following format specifiers are available for use in the <formatString>:
Specifiers | Description | Possible Values |
---|---|---|
%Y | Year (4 digits, zero padded) | 0000-9999 |
%m | Month (2 digits, zero padded) | 01-12 |
%d | Day of Month (2 digits, zero padded) | 01-31 |
%H | Hour (2 digits, zero padded, 24-hour clock) | 00-23 |
%M | Minute (2 digits, zero padded) | 00-59 |
%S | Second (2 digits, zero padded) | 00-60 |
%L | Millisecond (3 digits, zero padded) | 000-999 |
%j | Day of year (3 digits, zero padded) | 001-366 |
%w | Day of week (1-Sunday, 7-Saturday) | 1-7 |
%U | Week of year (2 digits, zero padded) | 00-53 |
%% | Percent Character as a Literal | % |
Example¶
Consider a sales collection with the following document:
{
"_id" : 1,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-01-01T08:15:39.736Z")
}
The following aggregation uses the $dateToString to return the date field as formatted strings:
db.sales.aggregate(
[
{
$project: {
yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$date" } },
time: { $dateToString: { format: "%H:%M:%S:%L", date: "$date" } }
}
}
]
)
The operation returns the following result:
{ "_id" : 1, "yearMonthDay" : "2014-01-01", "time" : "08:15:39:736" }
Thank you for your feedback!
We're sorry! You can Report a Problem to help us improve this page.