| DATATYPE | MIN | MAX | STORAGE | TYPE | NOTES |
|---|---|---|---|---|---|
| Bigint | -2^63 | 2^63-1 | 8 bytes | Exact | |
| Int | -2,147,483,648 | 2,147,483,647 | 4 bytes | Exact | |
| Smallint | -32,768 | 32,767 | 2 bytes | Exact | |
| Tinyint | 0 | 255 | 1 bytes | Exact | |
| Bit | 0 | 1 | 1 to 8 bit columns in the same table requires a total of 1 byte, 9 to 16 bits = 2 bytes, etc... | Exact | |
| Decimal | -10^38+1 | 10^38–1 | Precision 1-9 = 5 bytes, precision 10-19 = 9 bytes, precision 20-28 = 13 bytes, precision 29-38 = 17 bytes | Exact | The Decimal and the Numeric data type is exactly the same. Precision is the total number of digits. Scale is the number of decimals. For both the minimum is 1 and the maximum is 38. |
| Numeric | same as Decimal | same as Decimal | same as Decimal | Exact | |
| Money | -2^63 / 10000 | 2^63-1 / 10000 | 8 bytes | Exact | |
| Smallmoney | -214,748.3648 | 214,748.3647 | 4 bytes | Exact | |
| Float | -1.79E + 308 | 1.79E + 308 | 4 bytes when precision is less than 25 and 8 bytes when precision is 25 through 53 | Approx | Precision is specified from 1 to 53. |
| Real | -3.40E + 38 | 3.40E + 38 | 4 bytes | Approx | Precision is fixed to 7. |
| Datetime | 1753-01-01 00:00:00.000 | 9999-12-31 23:59:59.997 | 8 bytes | Datetime | If you are running SQL Server 2008 or later and need milliseconds precision, use datetime2(3) instead to save 1 byte. |
| Smalldatetime | 1900-01-01 00:00 | 2079-06-06 23:59 | Datetime | ||
| Date | 0001-01-01 | 9999-12-31 | 3 bytes | Datetime | |
| Time | 00:00:00.0000000 | 23:59:59.9999999 | Datetime | Specifying the precision is possible. TIME(3) will have milliseconds precision. TIME(7) is the highest and the default precision. Casting values to a lower precision will round the value. | |
| Datetime2 | 0001-01-01 00:00:00.0000000 | 9999-12-31 23:59:59.9999999 | Presicion 1-2 = 6 bytes precision 3-4 = 7 bytes precision 5-7 = 8 bytes | Datetime | Combines the date datatype and the time datatype into one. The precision logic is the same as for the time datatype. |
| Datetimeoffset | 0001-01-01 00:00:00.0000000 -14:00 | 9999-12-31 23:59:59.9999999 +14:00 | Presicion 1-2 = 8 bytes precision 3-4 = 9 bytes precision 5-7 = 10 bytes | Datetime | Is a datetime2 datatype with the UTC offset appended. |
| Char | 0 chars | 8000 chars | Defined width | String | Fixed width |
| Varchar | 0 chars | 8000 chars | 2 bytes + number of chars | String | Variable width |
| Varchar(max) | 0 chars | 2^31 chars | 2 bytes + number of chars | String | Variable width |
| Text | 0 chars | 2,147,483,647 chars | 4 bytes + number of chars | String | Variable width |
| Nchar | 0 chars | 4000 chars | Defined width x 2 | Unicode | Fixed width |
| Nvarchar | 0 chars | 4000 chars | Unicode | Variable width | |
| Nvarchar(max) | 0 chars | 2^30 chars | Unicode | Variable width | |
| Ntext | 0 chars | 1,073,741,823 chars | Unicode | Variable width | |
| Binary | 0 bytes | 8000 bytes | Binary | Fixed width | |
| Varbinary | 0 bytes | 8000 bytes | Binary | Variable width | |
| Varbinary(max) | 0 bytes | 2^31 bytes | Binary | Variable width | |
| Image | 0 bytes | 2,147,483,647 bytes | Binary | Variable width. Prefer to use the varbinary(max) type as the image type will be removed in future versions. | |
| Sql_variant | Other | Stores values of various SQL Server-supported data types, except text, ntext, and timestamp. | |||
| Timestamp | Other | Stores a database-wide unique number that gets updated every time a row gets updated. | |||
| Uniqueidentifier | Other | Stores a globally unique identifier (GUID). | |||
| Xml | Other | Stores XML data. You can store xml instances in a column or a variable. | |||
| Cursor | Other | A reference to a cursor. | |||
| Table | Other | Stores a result set for later processing. |
Thursday, March 5, 2015
SQL Server 2012 Data types
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment