sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er forskellen mellem Float og Numeric/Decimal i SQL Server - SQL Server / T-SQL Tutorial Del 33

Flyd og ægte er omtrentlige datatyper. Float og Real datatyper gemmer ikke nøjagtige værdier for mange tal. Værdien kan være ekstremt lukket.

Numeriske/decimaler er faste præcisionsdatatyper. Det vil gemme værdierne med nøjagtig præcision og skalere, hvad du har defineret.

Hvis du skal gemme data, hvor lille forskel ikke betyder noget, kan du bruge Float eller Real. Men hvis du skal have nøjagtige data, såsom til økonomisk anvendelse. Du bør bruge numerisk/decimal eller pengedatatype for at gemme nøjagtige data, da små forskelle kan påvirke beregningerne.

Eksempel:


Lad os erklære to variable og gemme de samme data og se, hvad der sker med output på grund af datatypen for dem.
DECLARE @DecimalVariable DECIMAL(8, 2)

SET @DecimalVariable = 213429.95

DECLARE @FloatVariable FLOAT(24)

SET @FloatVariable = 213429.95

SELECT @DecimalVariable AS DecimalVariable
    ,@FloatVariable AS FloatVariable
 
 
 
 Forskellen mellem Float og Decimal/Numeric i SQL Server - T SQL Tutorial 
 Som vi kan se i ovenstående snapshot, gemte og viste Decimal nøjagtige værdier, og hvor vi har gemt værdier i float, rundede det værdierne. 

Da flydende/reelle datatyper er omtrentlige datatyper, undgå at bruge dem ved at bruge i Where-sætning, specielt med =eller <> operatorer.
  1. Fix Msg 8116 "Argumentdatatype varchar er ugyldig for argument 1 for session_context-funktionen" i SQL Server

  2. Hvad er databasebegrænsninger?

  3. Find sidste række i gruppe efter query-SQL Server

  4. Sådan konfigureres AppArmor til PostgreSQL og TimescaleDB