1. 程式人生 > >基礎知識:數據類型優先級

基礎知識:數據類型優先級

pos eight cast rar 溢出 .com microsoft title html

原文:基礎知識:數據類型優先級

太忙好久沒更新博客了,今天隨便寫個吧,當做個筆記。

SQL Server在處理數值型的數據中,默認為INT型,以下的問題,可能你會遇到。

--結果為2,可能並非你想要的結果
SELECT  5 / 2;

--結果為2.5,INT向小數型轉換
SELECT  1.0 * 5 / 2;

--溢出,INT的範圍是-2147483648 ~ 2147483647
SELECT  65536 * 65536;

--溢出,在轉換BIGINT前還是INT
SELECT  CAST(65536 * 65536 AS BIGINT);

--INT會向BIGINT轉換
DECLARE @b BIGINT = 65536; SELECT @b * 65536; --BIGINT型 DECLARE @a BIGINT = 65536; SELECT @a * @a; --INT向FLOAT轉換 DECLARE @c FLOAT = 65536000; SELECT @c * 65536000; --溢出 SELECT POWER(2, 31); --正確結果 DECLARE @d BIGINT = 2; DECLARE @e BIGINT = 31; SELECT POWER(@d, @e);


數據類型優先級:

https://msdn.microsoft.com/en-us/library/ms190309.aspx

基礎知識:數據類型優先級