小编Sri*_*m M的帖子

使用“AS”而不使用“AS”的别名

访问具有别名“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 有什么区别?

sql-server

7
推荐指数
1
解决办法
1万
查看次数

如何获得 SQL Server 中两个日期之间的确切年份差异?

我有一个出生日期列,我需要比较当前日期并将差异作为年龄返回。目前我正在使用以下查询:

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

6
推荐指数
1
解决办法
4万
查看次数

标签 统计

sql-server ×2