首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >4-4-5会计期间是我存在的最佳时机

4-4-5会计期间是我存在的最佳时机
EN

Stack Overflow用户
提问于 2009-08-26 20:18:04
回答 1查看 1.3K关注 0票数 0

我们使用4-4-5会计期间。如果你对此不熟悉,你可以在Wikipedia上找到相关信息。

为此,我创建了一个日期表,其中包含未来10年的所有日期。我使用了找到here的脚本(尽管经过了修改)。

我的表的创建脚本是:

代码语言:javascript
复制
USE [RedFridayDates];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE TABLE [tblRedFridayAllDates] (
[DATE_ID] int NOT NULL,
[DATE] datetime NOT NULL,
[YEAR] smallint NOT NULL,
[MONTH] tinyint NOT NULL,
[DAY_OF_WEEK] tinyint NOT NULL,
[REDFRIDAY] bit NULL,
[Period] tinyint NULL,
[ForecastSales] money NULL)
ON [PRIMARY];
GO

这段时间是我的4-4-5“月”。

我通常使用我创建的以下模板将我的查询链接到它:

代码语言:javascript
复制
SELECT RED.[YEAR] as [Year],
RED.PERIOD as [RF Period],

FROM TableName
  INNER JOIN REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED
          ON RED.date =
             CAST (FLOOR (CAST (TableName.Date AS FLOAT)) AS DATETIME)

我的大多数数据库使用的是SQL2000,所以我的日期都是日期时间字段。

有没有更有效的方法来实现这一点?这是我可以使用的最好的查询模板吗?将日期转换为日期时间的其他方法呢?有没有更快的方法来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-26 20:31:12

我使用了将datetime的日期部分提取到持久化计算字段(可能是已索引的)中,并在计算字段(仅限日期)上执行所有连接和搜索。实际上,您在2k8之前的版本中拥有了2k8的新DATE类型,代价是8字节(如果您愿意将其存储为int,甚至可以是4字节)。优点是datetimes仅按日期部分进行SARGability。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1337207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档