drm schreef op donderdag 22 augustus 2013 @ 01:45:
Ik vind het in het algemeen niet zo'n best advies om gewoon maar te gaan rekenen met datums. Je kunt je nog aardig vergissen in schrikkeltoestanden die je niet kunt afleiden uit een getalletje dat wel "ongeveer vorige week vrijdag" zou moeten zijn.
Zolang je date/time functies (zoals ik deed met
.AddDays(double value)) gebruikt komt dat wel goed. Dat is nog altijd beter dan zelf liggen frotten met schrikkeljaren en whatnot inderdaad.
Dat geldt
altijd en
overal voor. Context is belangrijk. Uiteindelijk is 't allemaal een shitload aan enen en nullen

Daar is nou net zo'n BCL van .Net enzo heel handig voor

En daar ging 't uiteindelijk om; er is ook nergens gerept over zelf een paar duizend dagen bij "epoch" op te tellen en met schrikkeljaren en zomer/wintertijd te lopen ouwehoeren (en schrikkelsecondes en ga zo maar door). In the end zijn er gewoon date/time functies gebruikt.
Uiteraard.
Wat ik overigens misschien wel nog even had kunnen vermelden is dat je, uiteraard, gewoon 't beste
FromOADate kunt gebruiken (wat DaoS ook al heeft aangegeven). Maar dan gaan we uit van .Net en Dava (TS) geeft alleen maar (lekker vaag) "Uiteindelijk moet ik de conversie in SQL zien te doen" aan. En daar heb je doorgaans weinig "libraries" in beschikbaar

Een:
select cast(41504.785174 as datetime)
zit er 2 dagen langs (jeej, Excel/Office

), een:
select dateadd(s, 41504.785174 * 86400 , '1899-12-30');
gaat niet werken vanwege een int-overflow (
dateadd verwacht een int voor de
number parameter). En dan kom je al gauw op iets als:
select dateadd(s, (@val - cast(@val as int)) * 86400, dateadd(d, @val, '1899-12-30'));
(waarbij @val een float van 41504,785174 is, of als placeholder dient voor de kolomnaam waar de waarde in staat).
Laten we wel wezen, 't grootste probleem zit 'm natuurlijk sowieso in, en begint dus bij, 't feit dat TS een waarde heeft (41504,785174) i.p.v. gewoon een
datetime,
datetime2 of
datetimeoffset.
[
Voor 23% gewijzigd door
RobIII op 22-08-2013 02:21
]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij