What this is about
You also send dates and times in a filter as text. CDMS reads the text in a fixed format. Which one depends on the field type:
| Field type | Format | Example |
|---|---|---|
Date (DateField) | yyyy-MM-dd | "2026-02-10" |
Time (TimeField) | HH:mm:ss | "08:30:00" |
Timestamp (DateTimeField) | yyyy-MM-dd HH:mm:ss | "2026-02-10 08:30:00" |
yyyy is the year, MM the month, dd the day, HH the hour from 00 to 23, mm the minute, ss the second. All parts have leading zeros.
The values have no time zone. CDMS compares them as they are stored in the database.
A project can change the three formats with the settings app.format.date, app.format.time and app.format.datetime. The table shows the default.
The system fields
_createdOn and _updatedOn are timestamps. You can filter and sort them like any other field:
{ "key": "_createdOn", "value": "2026-09-01 00:00:00", "param": "SAMEORAFTER" }
See System fields that the server sets.
Time ranges
You build a time range from two filters in an AND group: the start with SAMEORAFTER (inclusive), the end with BEFORE (exclusive).
{
"type": "AND",
"filter": [
{ "key": "dueOn", "value": "2026-02-01", "param": "SAMEORAFTER" },
{ "key": "dueOn", "value": "2026-03-01", "param": "BEFORE" }
]
}
flowchart LR
A["Jan 31"] --- B["Feb 1<br/>SAMEORAFTER<br/>included"]
B --- C["… February …"]
C --- D["Feb 28"]
D --- E["Mar 1<br/>BEFORE<br/>not included"]
All variants
When: Field dueOn of type date.
{ "key": "dueOn", "value": "2026-02-10", "param": "EQ" } finds exactly this day.
Result: Everything due on Feb 10, 2026.
When: Field of type time, e.g. opensAt.
{ "key": "opensAt", "value": "09:00:00", "param": "BEFORE" }
Result: Everything that opens before 9 a.m.
When: Field startedAt of type timestamp.
{ "key": "startedAt", "value": "2026-02-10 08:00:00", "param": "AFTER" }
Result: Everything after Feb 10, 2026, 8 a.m.
When: You want all entries of one day from a timestamp field.
EQ with "2026-02-10" does not work, the value is missing the time. Use a time range: SAMEORAFTER "2026-02-10 00:00:00" and BEFORE "2026-02-11 00:00:00".
Result: All entries from Feb 10, 2026.
When: "10.02.2026", "2026-02-10T08:00:00" or a timestamp without a time.
CDMS cannot read the text and rejects the search.
Result: 400 wrong-value-in-where|dueOn|10.02.2026. See When a filter does not fit.
Which operators?
For date, time and timestamp there are EQ, NEQ, IN, BEFORE, AFTER, SAMEORBEFORE, SAMEORAFTER, ISNULL and ISNOTNULL. LIKE does not exist for these fields. See All filter operators.