SqlHints.com

ook voor “DateTime 2” (vs. “DateTime”):

1. Het gebruik van de functie” DateAdd ” is geen triviale oplossing voor het niet hebben van een impliciete / gemakkelijke conversie naar een floating-point numeric (# van dagen.fractie van een dag) sinds min datum-tijd, esp. je probeert rekening te houden met meerdere (zo niet alle) delen van de datum (dat wil zeggen het optellen / aftrekken van 2 volledige datum-tijden samen / van elkaar).

2. Kan niet gemakkelijk berekenen ” leeftijd “(bijvoorbeeld door gewoon aftrekken van een” DateTime ” van een andere vs. met behulp van “Datediff” functie die niet “leeftijd” retourneert wanneer de twee datum-tijden toevallig aan tegenovergestelde zijden van een kalender / klok grens van de eenheid gespecificeerd).

3. Kan niet gemakkelijk gebruiken in de” Avg “Aggregate functie (door gewoon”Cast “‘ing naar” Float “eerste en weer terug naar”DateTime”). Btw, als je vraagt wat het doel is van het krijgen van een” Avg ” van datum-tijden: naast het gebruik in het verkrijgen van de gemiddelde duur wanneer datum-tijden (sinds een gemeenschappelijke basis datum-tijd) worden gebruikt om de duur (een gemeenschappelijke praktijk) vertegenwoordigen, is het ook handig om voor dashboard-type statistiek over wat de gemiddelde datum-tijd is in een bereik / groep van datum-tijden. Een standaard ad-hoc query om waarden in een kolom te onderzoeken / problemen op te lossen die mogelijk nooit meer geldig zijn en / of moeten worden verouderd, is om voor elke waarde het aantal voorvallen en (indien beschikbaar) De Min -, avg-en max-datum-tijdstempels die aan die waarde zijn gekoppeld, weer te geven.

Ja, ik realiseer me dat er een (vrij complexe) tijdelijke formule is (bij “https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html”), maar zelfs die formule werkt alleen voor datumtijden nieuwer dan het jaar 1970 (wat betekent dat je alle extra range *plus* 217 jaar verliest en dat extra range waarschijnlijk (vermoedelijk) een van de 2 grootste voordelen van “DateTime 2” is, hoewel waarschijnlijk niet nodig in de meeste use cases), en het is niet noodzakelijk triviaal om het meer range te laten ondersteunen vanwege mogelijke numerieke overflow problemen.

En ja, ik realiseer me dat je kon ook “Cast” naar “DateTime” eerste (en indien nodig weer terug naar “DateTime2 -“), maar je verliest het extra precisie en weer, de extra bereik (alle vóór 1753) voordelen van “DateTime2 -” vs. “DateTime” die weer zijn waarschijnlijk de 2 grootste en ook op hetzelfde moment, waarschijnlijk waarschijnlijk niet nodig, dat roept de vraag op waarom gebruiken als je verliest de impliciete / easy conversies te floating-point numeriek (# dagen) voor optellen / aftrekken / “leeftijd” (vs. DateDiff) / Avg calcs voordeel en dat is een grote in mijn ervaring.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

More: