parallax background image

Tijd als data in je oplossing

Gepubliceerd op 13 juni 2021 Leestijd : 2 minuten

Sommige oplossingen op het web vereisen dat de bezoeker of de klant een datum invult. Het kan ook voorkomen dat het gaat om een tijd of om een tijdsbereik. Denk bijvoorbeeld aan een gewenste levertijd of openingstijden van je winkel.

Met behulp van standaardfunctionaliteit van SQL, HTML en C#, kan je deze tijden eenvoudig verwerken in je applicatie.

Tijden in SQL

In SQL heb je de volgende datatypen die te maken hebben met tijd:
* time
* date
* smalldatetime
* datetime
* datetime2
* datetimeoffset

Bovenstaande types bevatten allemaal een datum, behalve _time_. Time bevat alleen een waarde tussen 00:00:00 en 23:59:59 (inclusief nanoseconden). Als je een tijd wilt opslaan en alleen een tijd, dan is dit het type dat je wilt gebruiken.

Bijvoorbeeld openingstijden van een winkel:

openingstijdenId    |   int
tijdOpenVan         |   time
tijdOpenTot         |   time

Of gewenste levertijd bij een bestelling, ongeacht datum levering:
bestellingId        |   int
leverenVanaf        |   time

Als je de waarde in een kolom van type time op een andere manier wilt presenteren, gebruik van CONVERT:

-- Onderstaande geeft terug: 14:30. Of de variabele nou time of een datetime is.
SELECT Convert(varchar(5), GetDate(), 108)

 

Tijden in HTML

HTML biedt de mogelijkheid om tijden te kunnen aanpassen via INPUTs met type 'time'. De browser zal een dropdown tonen met daarin de keuze voor uur en minuut.

Je kan ook de waarde zetten op basis van het volgende formaat: HH:mm, dus 23:31 bijvoorbeeld. Dit kan via value="" of via Javascript.

Tijden in C#

In C# is TimeSpan de ideale kandidaat om enerzijds om te gaan met het datatype time uit SQL en de waarde uit het INPUT-type time. In MVC wordt de waarde "14:30" automatisch omgezet naar een TimeSpan als er een viewmodel gebind is. En Entity Framework maakt van het datatype time gebruik als je TimeSpan in je datamodel hebt.

Wil je een TimeSpan in een bepaald formaat teruggeven, maak dan gebruik van ToString. Bijvoorbeeld: begintijd.ToString("hh:mm") levert de string "14:30" op, als begintijd is TimeSpan(14, 30, 0);

Onze klanten
Onze oplossingen