Sök…


Introduktion

I det här avsnittet diskuteras de datatyper som SQL Server kan använda, inklusive deras dataintervall, längd och begränsningar (om sådana finns.)

Exakt numerik

Det finns två grundläggande klasser med exakta numeriska datatyper - heltal och fast precision och skala .

Heltalsdatatyper

  • bit
  • tinyint
  • smallint
  • int
  • bigint

Heltal är numeriska värden som aldrig innehåller en bråkdel och som alltid använder en fast mängd lagring. Område och lagringsstorlekar för heltaldatatyper visas i denna tabell:

Data typ Räckvidd Lagring
bit 0 eller 1 1 bit **
tinyint 0 till 255 1 byte
smallint -2 ^ 15 (-32,768) till 2 ^ 15-1 (32,767) 2 byte
int -2 ^ 31 (-2,147,483,648) till 2 ^ 31-1 (2,147,483,647) 4 bytes
bigint -2 ^ 63 (-9,223,372,036,854,775,808) till 2 ^ 63-1 (9,223,372,036,854,775,807) 8 byte

Fasta datatyper för precision och skala

  • numerisk
  • decimal
  • smallmoney
  • pengar

Dessa datatyper är användbara för att exakt representera siffror. Så länge värdena kan passa inom värdet som kan lagras i datatypen, kommer värdet inte att ha avrundningsproblem. Detta är användbart för alla ekonomiska beräkningar, där avrundningsfel kommer att leda till klinisk vansinne för revisorer.

Observera att decimaler och siffror är synonymer för samma datatyp.

Data typ Räckvidd Lagring
Decimal [(p [, s])] eller numeriskt [(p [, s])] -10 ^ 38 + 1 till 10 ^ 38 - 1 Se Precisionstabell

När du definierar en decimal- eller numerisk datatyp kan du behöva ange Precision [p] och Scale [s].

Precision är antalet siffror som kan lagras. Om du till exempel skulle behöva lagra värden mellan 1 och 999, skulle du behöva en precision på 3 (för att hålla de tre siffrorna i 100). Om du inte anger en precision är standardprecisionen 18.

Skala är antalet siffror efter decimalpunkten. Om du behövde lagra ett nummer mellan 0,00 och 999,99, måste du ange en precision på 5 (fem siffror) och en skala på 2 (två siffror efter decimalpunkten). Du måste ange en precision för att ange en skala. Standardskalan är noll.

Precisionen för en decimal eller numerisk datatyp definierar antalet byte som krävs för att lagra värdet, som visas nedan:

Precisionstabell

Precision Lagringsbyte
1 - 9 5
10-19 9
20-28 13
29-38 17

Monetära fasta datatyper

Dessa datatyper är avsedda specifikt för redovisning och andra monetära uppgifter. Den här typen har en fast skala på 4 - du kommer alltid att se fyra siffror efter decimalplatsen. För de flesta system som arbetar med de flesta valutor är det tillräckligt att använda ett numeriskt värde med en skala på 2. Observera att ingen information om typen av representerad valuta lagras med värdet.

Data typ Räckvidd Lagring
pengar -922,337,203,685,477,5808 till 922,337,203,685,477,5807 8 byte
smallmoney -214,748,3648 till 214,748,3647 4 bytes

Ungefärliga siffror

  • flyta [( n )]
  • verklig

Dessa datatyper används för att lagra flytande punktnummer. Eftersom dessa typer endast är avsedda att innehålla ungefärliga numeriska värden bör dessa inte användas i fall där något avrundningsfel är oacceptabelt. Men om du behöver hantera mycket stora siffror eller siffror med ett obestämt antal siffror efter decimalen kan dessa vara det bästa alternativet.

Data typ Räckvidd Storlek
flyta -1.79E + 308 till -2.23E-308, 0 och 2.23E-308 till 1.79E + 308 beror på n i tabellen nedan
verklig -3,40E + 38 till -1,18E - 38, 0 och 1,18E - 38 till 3,40E + 38 4 bytes

n- värdetabell för floatnummer . Om inget värde anges i flottördeklarationen kommer standardvärdet 53 att användas. Observera att flottören (24) motsvarar ett verkligt värde.

n-värde Precision Storlek
1-24 7 siffror 4 bytes
25-53 15 siffror 8 byte

Datum och tid

Dessa typer finns i alla versioner av SQL Server

  • datum Tid
  • smalldatetime

Dessa typer finns i alla versioner av SQL Server efter SQL Server 2012

  • datum
  • datetimeoffset
  • datetime2
  • tid

Teckensträngar

  • röding
  • varchar
  • text

Unicode-karaktärssträngar

  • nchar
  • nvarchar
  • ntext

Binära strängar

  • binär
  • varbinary
  • bild

Andra datatyper

  • markören
  • tidsstämpel
  • hierarchyid
  • uniqueidentifier
  • sql_variant
  • xml
  • tabell
  • Rumsliga typer


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow