基礎知識:數據類型優先級
阿新 • • 發佈:2017-12-25
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
基礎知識:數據類型優先級