Skip to main content
Question

Indicium serializes SQL DATE column as UTC datetime — causing -1 day offset in Universal GUI

  • June 12, 2026
  • 2 replies
  • 43 views

Forum|alt.badge.img

Hello Thinkwise,

We are experiencing an issue where a SQL DATE column (subsidiary_calendar.date) is serialized by Indicium as a UTC datetime string ("2025-06-08T00:00:00Z") in the OData response. The Thinkwise Universal GUI running in the Netherlands (CEST = UTC+2) subtracts 2 hours, rendering the date as the previous day.

This causes a visible bug in our pickup overview: Monday June 8 disappears from the day window because Sunday's is_work_day = 0 ends up being shown on Monday's slot.

We confirmed this via a direct OData call:
GET /subsidiary_calendar?$filter=subsidiary_id eq 1186 and date eq 2025-06-08&$select=date,is_work_day

Response: { "date": "2025-06-08T00:00:00Z", "is_work_day": 0 }

The database correctly stores 2025-06-08 with is_work_day = 0 (Sunday). The serialization introduces the offset.

We know that $apply=Compute(Date(date) as date) returns a pure date string as a workaround, but this cannot be applied at SF model level since our views and subjects are driven by the model.

Is there a way to configure Indicium or the SF model so that DATE columns are returned as a pure date string ("2025-06-08") without a UTC timezone offset — for example via a domain setting, column property, or Indicium configuration flag?

Kind regards,

Rolf

 

working_days as (
select sc.subsidiary_id, sc.[date],
row_number() over (partition by sc.subsidiary_id order by sc.[date]) as rn
from subsidiary_calendar sc
where sc.is_work_day = 1
and sc.[date] between cast(getdate() as date) and dateadd(day, 14, cast(getdate() as date))
),
workingdays_in_future as (
select subsidiary_id, [date] as max_date from working_days where rn = 7
)

 

2 replies

Poonam
Moderator
Forum|alt.badge.img+2
  • Moderator
  • June 16, 2026

Hi ​Rolf,

Have you tried checking the Time zone on the domain instead of the OData workaround?

In this case Software Factory > Data > Domains > [domain for subsidiary_calendar.date] > Form > set Time zone = "Show as stored". It's model-level, so it applies everywhere without query changes.

Also check the Data type is DATE (not DATETIME).

Note: this affects every column on that domain, so you might want to split off a separate date domain if it's shared with real timestamps.


Forum|alt.badge.img
  • Author
  • Rookie
  • June 19, 2026

Hi Poonam,

Thanks for the suggestion! We checked the domain and the Time zone was already set to "Show as stored", so that setting was correct all along, yet the bug persists. Indicium still serializes the column as "2025-06-08T00:00:00Z".

The domain is named date, which is a reserved keyword in both SQL Server and OData (Edm.Date). My theory is that Indicium might be confused by the domain name and falls back to a default datetime serialization instead of treating it as a pure date?

Would you have any insight into whether Indicium handles domains differently when the domain name matches a reserved keyword?

Kind regards,
Rolf