How to resolve the datetime field in SmartConnect displaying a different value than in the Dynamics 365 Sales/CRM User Interface.
Cause
SmartConnect uses the D365 web services to pull your data source. The web services return datetime fields exactly as they are stored in the D365 SQL tables. There are four ways datetime fields are stored.
- User Local: Date is stored in table as UTC and when a client pulls the date it is converted to the user’s local time zone.
- Time-Zone Independent: The value is stored in the local format, and will be retrieved by all clients in the same format.
- Date Only: Only the date is set, but the field will contain a time value of 12:00AM.
- Time Only: Only the time value is set, but the field will use the current date.
The format that will be used to set the date are specified when creating the field in CRM.
Resolution
User Local
A Calculated Column can be used to convert the field to the correct value.
If _MSDYN_TIMEWINDOWSTART = “” then
return “”
else
Dim UTCdate as date = _MSDYN_TIMEWINDOWSTART
return UTCdate.ToLocalTime()
end if
Date Only
A Calculated Column can be used to return only the date.
If _MSDYN_TIMEWINDOWSTART = “” then
return “”
else
return Convert.ToDateTime(_MSDYN_TIMEWINDOWSTART).ToString(“yyyy-MM-dd”)
end if
Time Only
A Calculated Column can be used to return only Time value
‘Time-Zone Independent
If _MSDYN_TIMEWINDOWSTART = “” then
return “”
else
return Convert.ToDateTime(_MSDYN_TIMEWINDOWSTART).ToString(“hh:mm tt”)
end if
‘Time-Zone Dependant
If _MSDYN_TIMEWINDOWSTART = “” then
return “”
else
Dim UTCdate as date = _MSDYN_TIMEWINDOWSTART
return UTCdate.ToLocalTime().ToString(“hh:mm tt”)
end if
Resource
Microsoft article about date and time fields.