$second (Get Second)
Last updated: 2026-10-09
$second (Get Second)
$second returns the second part of a date (0 to 59) — useful for second-level labels or timestamp checks. It returns an integer without zero padding; use %S of $dateToString for two digits. It combines with $minute, $hour, and $millisecond to rebuild time parts at any precision. timezone does not change the second for ordinary offsets.
| Category | Date |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $second: { date: <date-expression>, timezone: <timezone> } }
⚙️ Parameters
| date | Required; the date expression. |
|---|---|
| timezone | Optional; does not affect the second for ordinary offsets. |
Returns:The second (0-59); null if date is null.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $second + $millisecond: millisecond-level labels
db.sensors.aggregate([
{ $project: { s: { $second: '$ts' }, ms: { $millisecond: '$ts' } } }
])
Output:
{ "_id": 1, "s": 42, "ms": 320 }
{ "_id": 2, "s": 0, "ms": 0 }
📌 Notes
- Range 0-59, no zero padding; use %S for two digits
- Combine with $millisecond for millisecond-level labels
- Seconds are zone-independent for ordinary offsets
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhat is the range?
A0 to 59.
QHow to output a two-digit second?
AUse %S of $dateToString, or pad manually with $concat.
QHow to pair with $millisecond?
AAdd them directly to rebuild a second.millisecond part.