SqlHints.com

de asemenea, pentru „DateTime2” (vs. „DateTime”):

1. Utilizarea funcției” DateAdd ” nu este o soluție banală pentru a nu fi fără conversie implicită / ușoară la un număr în virgulă mobilă (# de zile.fracțiune de zi) de la data min-ora, esp. încercați să luați în considerare mai multe (dacă nu toate) părți ale datei (adică adăugarea / scăderea a 2 date complete împreună / una de cealaltă).

2. Nu se poate calcula cu ușurință ” vârsta „(de exemplu, prin scăderea doar un” DateTime ” de la un alt vs. utilizarea funcției ” DateDiff „care nu returnează” vârsta ” atunci când cele două date se întâmplă să fie pe laturile opuse ale unei limite calendar / ceas a unității specificate).

3. Nu se poate folosi cu ușurință în funcția agregată ” Avg „(doar prin”Cast „” ing la „Float”primul și înapoi din nou la „DateTime”). Btw, dacă vă întrebați ce scopul este de a obține un „Avg” de data-ori: în afară de utilizarea în obținerea duratei medii atunci când data-times (de la o bază comună data-time) sunt folosite pentru a reprezenta durata (o practică comună), este de asemenea util pentru a obține pentru statistica de tip tablou de bord pe ceea ce Media Data-time este într-un interval / grup de data-times. O interogare ad-hoc standard pentru a cerceta / depana valorile dintr-o coloană care poate să nu mai fie validă și / sau poate fi necesară deprecierea este de a enumera pentru fiecare valoare Numărul de apariție și (dacă este disponibil) ștampilele min, avg și max Data-time asociate cu acea valoare.

Da, îmi dau seama că există o formulă de soluție (destul de complexă) (la „https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html”), dar chiar și această formulă funcționează doar pentru data de ori mai nouă decât anul 1970 (ceea ce înseamnă că pierdeți tot intervalul suplimentar *plus* 217 ani și că intervalul suplimentar este probabil (presupus) unul dintre cei mai mari 2 profesioniști ai „DateTime2”, deși probabil nu este necesar în majoritatea cazurilor de utilizare) și nu este neapărat banal să-l susținem mai mult din cauza posibilelor probleme de depășire numerică.

și, da, îmi dau seama că ai putea, de asemenea, „arunca” la „DateTime” în primul rând (și, dacă este necesar, înapoi la „DateTime2”), dar ai pierde precizia suplimentară și din nou, gama suplimentară (toate înainte de anul 1753) beneficiile „DateTime2” vs. „DateTime”, care din nou sunt probabil cele mai mari 2 și, de asemenea, în același timp, probabil că nu este necesar, ceea ce ridică întrebarea De ce să o folosiți atunci când pierdeți conversiile implicite / ușoare la de zile) pentru adunare / scădere / „vârstă” (vs. datediff) / avg calcs beneficiu, care este unul mare din experiența mea.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

More: