访问具有别名“AS”的表和不使用“AS”的表有什么区别。是否有任何性能增强?
例如 :
SELECT S.ID,S2.Value FROM dbo.Sample AS S
INNER JOIN dbo.Sample2 AS S2 ON
S.ID = S2.ID;
SELECT S.ID,S2.Value FROM dbo.Sample S
INNER JOIN dbo.Sample2 S2 ON
S.ID = S2.ID;
Run Code Online (Sandbox Code Playgroud)
1 和 2 有什么区别?
我有一个出生日期列,我需要比较当前日期并将差异作为年龄返回。目前我正在使用以下查询:
DECLARE @DateOfBirth date = '2000-07-27'
DECLARE @CurrentDate date = '2015-07-25'
SELECT
@Age = DATEDIFF(YEAR, @DateOfBirth, @CurrentDate)
Run Code Online (Sandbox Code Playgroud)
我得到的差异为 15,但所需的结果应该是 14。这是因为它比较了年份并获得了 2015 年和 2000 年之间的差异。所以我使用了以下查询:
select
@Age = CAST(datediff(day, @DOB, @CurrentDate) / 365.2425 AS INT)
RESULT : 14
Run Code Online (Sandbox Code Playgroud)
但是当我将出生日期值更改为 '2000-07-25' 时,我仍然得到 14 的值,但它应该是 15,因为日期差正好是 15 年。
我怎样才能从中得到确切的年份差异?
sql-server ×2