加入使用日期字段的最佳方式

abs*_*123 6 sql sql-server

我知道我在某个地方读到使用函数作为连接例如年(日期)在另一个具有年份的表上进行连接并不是最好的连接方式.

我基本上有一个表格,其中年份字段的值为2016,另一个表格的实际日期类似于01/01/2016,我使用年份(日期)进行连接.

例如,2016年创建一个字段通常会在财务期开始,以便开始日期为2016年4月1日和结束日期31/03/2016并使用这些字段进行连接.但是想知道在加入方面会是什么样子?或者我是否应继续使用我的方法将01/01/2016转换为使用year()函数的年份?

Gor*_*off 1

您可以做的一件事是定义一个计算列,然后在其上创建一个索引:

alter table t add start_year as (year(start_date));

create index idx_t_??_start_year on t(??, start_year);
Run Code Online (Sandbox Code Playgroud)

旨在??成为一个或多个其他列。仅 on 的索引start_year选择性不高,因此 SQL Server 可能不会使用它。