SqlHints.com

også for “DateTime2” (vs. “DateTime”):

1. Brug af” DateAdd ” -funktionen er ikke en triviel løsning for ikke at have implicit / nem konvertering til et flydende punkt numerisk (# af dage.brøkdel af en dag) siden min dato-tid, esp. du forsøger at tage højde for flere (hvis ikke alle) dele af datoen (dvs.tilføje / trække 2 fulde datotider sammen / fra hinanden).

2. Kan ikke nemt beregne ” alder “(f. eks. ved blot at trække en” DateTime ” fra en anden vs. brug af” DateDiff “-funktionen, som ikke returnerer” alder”, når de to datotider tilfældigvis er på modsatte sider af en kalender / urgrænse for den angivne enhed).

3. Kan ikke nemt bruge i “Avg” Aggregatfunktionen (ved blot at “Cast”‘ing for at “flyde” først og tilbage igen til “DateTime”). BTV, hvis du spørger, hvad formålet er at få en” gennemsnitlig ” af dato-tider: udover brug i at få gennemsnitlig varighed, når Dato-tider (siden en fælles base dato-tid) bruges til at repræsentere varighed (en almindelig praksis), er det også nyttigt at få til Dashboard-type statistik om, hvad den gennemsnitlige dato-tid er i en række / gruppe af dato-tider. En standard ad hoc-forespørgsel til forskning / fejlfinding af værdier i en kolonne, der muligvis ikke er gyldig nogensinde / længere og / eller muligvis skal udskrives, er at liste for hver værdi antallet af hændelser og (hvis tilgængelig) min -, avg-og maks.

ja, jeg er klar over, at der er en (ret kompleks) løsningsformel (ved ” https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html”), men selv den formel fungerer kun for datotider nyere end År 1970 (hvilket betyder, at du mister alt det ekstra interval *plus* 217 år, og at ekstra rækkevidde sandsynligvis (angiveligt) er en af de 2 største fordele ved “DateTime2”, omend sandsynligvis ikke nødvendigt i de fleste brugssager), og det er ikke nødvendigvis trivielt at få det til at understøtte mere rækkevidde på grund af mulige numeriske overløbsproblemer.

og ja, jeg er klar over, at du også kunne “kaste” til “DateTime” først (og om nødvendigt tilbage igen til “DateTime2”), men du vil miste den ekstra præcision og igen, det ekstra interval (alt før år 1753) fordele ved “DateTime2” vs. “DateTime”, som igen sandsynligvis er de 2 største og også på samme tid, sandsynligvis ikke sandsynligvis nødvendigt, hvilket rejser spørgsmålet, Hvorfor bruge det, når du mister de implicitte / lette konverteringer til flydende punkt numerisk (# af dage) for addition / subtraktion / “Alder” (vs datediff) / AVG calcs fordel, som er en stor i min erfaring.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

More: