我有一个使用SQL Server 2008 R2在Web上开发的管理项目和使用SQL Server CE 4.0的Windows应用程序。
两者使用几乎相同的数据库结构。我有一张费用表:
TABLE [fees]
(
[feeid] bigint NOT NULL IDENTITY(1,1),
[acno] int NULL DEFAULT 0,
[billingmonth] nvarchar(10) NULL,
[oldbal] numeric(18,2) NULL DEFAULT 0,
[duedtamt] numeric(18,2) NULL DEFAULT 0,
[afterdtamt] numeric(18,2) NULL DEFAULT 0,
[bal] numeric(18,2) NULL DEFAULT 0,
[depamt] numeric(18,2) NULL DEFAULT 0,
[totdpo] numeric(18,2) NULL DEFAULT 0,
[depdt] datetime NULL
)
billingmonth
将始终使用格式MMM-yyyy
,例如。扬-2018
BillingMonth
在其他表中使用各种连接(内部和左外连接)。
如何使用BillingMonth
提高联接的效果? ,我应该:
答案 0 :(得分:3)
不建议将日期值存储为nvarchar
有许多建议可以提高连接效果:
Date
数据类型tinyint
表示月份,smallint
表示年份,可以使用仅用于加入目的 ) 请注意:AS @Pரதீப்提到,当您分别存储月份和年份时,您需要在搜索日期范围时进行一些整数操作