SQL Server:具有指数的文字的默认数据类型是什么?

Gif*_*guy 1 sql sql-server types literals sql-server-2017

具有指数的文字的默认数据类型是什么?

例如,文字的默认数据类型是什么 5000E0

具体来说,我需要确保默认值是FLOAT(即FLOAT(53))

如果默认值是REAL(ie FLOAT(24)),那么我担心会添加额外的隐式转换,从而减慢我的查询速度.

Dav*_*oft 5

这是一个64位浮动.

select datalength(5000E0) 
Run Code Online (Sandbox Code Playgroud)

输出

8

select 5000E0 val into #t

select t.name, t.max_length, t.precision
from tempdb.sys.columns c
join sys.types t 
  on t.system_type_id = c.system_type_id
where object_id = object_id('tempdb..#t') 
Run Code Online (Sandbox Code Playgroud)

输出

name      max_length precision
--------- ---------- ---------
float     8          53
Run Code Online (Sandbox Code Playgroud)