Edm.Date and Edm.TimeOfDay
Applies To:# OData WebApi v7 for aspnet webapi supported OData AspNet WebApi V7# OData Webapi for Webapi supported OData AspNet WebApi V6
This sample introduces how to use the Edm.Date
& Edm.TimeOfDay
supported in Web API OData V5.5.
Build Edm Model
ODL V6.8 introduces two new primitive types. One is Edm.Date
, the other is Edm.TimeOfDay
. Besides, it also introduces two new struct types to represent the CLR types of Edm.Date and Edm.TimeOfDay.
So, developers can use the new CLR struct types to define their CLR model.
For example, if user defines a model as:
using Microsoft.OData.Edm.Library;
public class Customer
{
public int Id { get; set; }
public DateTimeOffset Birthday { get; set; }
public Date Publish { get; set; }
public TimeOfDay CheckTime{ get; set;}
}
The metadata document for Customer entity type will be:
<EntityType Name="Customer">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Birthday" Type="Edm.DateTimeOffset" Nullable="false" />
<Property Name="Publish" Type="Edm.Date" Nullable="false"/>
<Property Name="CheckTime" Type="Edm.TimeOfDay" Nullable="false"/>
</EntityType>
Built-in Functions
Along with the Edm.Date
& Edm.TimeOfDay
, new date and time related built-in functions are supported in Web API OData V5.5.
Here's the list:
Date
- Edm.Int32 year(Edm.Date)
- Edm.Int32 month(Edm.Date)
- Edm.Int32 day(Edm.Date)
TimeOfDay
- Edm.Int32 hour(Edm.TimeOfDay)
- Edm.Int32 minute(Edm.TimeOfDay)
- Edm.Int32 second(Edm.TimeOfDay)
- Edm.Decimal fractionalseconds(Edm.TimeOfDay)
DateTimeOffset
- Edm.Decimal fractionalseconds(Edm.DateTimeOffset)
- Edm.Date date(Edm.DateTimeOffset)
- Edm.TimeOfDay time(Edm.DateTimeOffset)
Query examples
Let's show some query request examples:
Date
- ~/odata/Customers?$filter=year(Publish) eq 2015
- ~/odata/Customers?$filter=month(Publish) ne 11
- ~/odata/Customers?$filter=day(Publish) lt 8
TimeOfDay
- ~/odata/Customers?$filter=hour(CheckTime) eq 2
- ~/odata/Customers?$filter=minute(CheckTime) ge 11
- ~/odata/Customers?$filter=second(CheckTime) lt 18
- ~/odata/Customers?$filter=fractionalseconds(CheckTime) eq 0.04
DateTimeOffset
- ~/odata/Customers?$filter=fractionalseconds(Birthday) lt 0.04
- ~/odata/Customers?$filter=date(Birthday) lt 2015-03-23
- ~/odata/Customers?$filter=time(Birthday) eq 03:04:05.90100
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for