Tsql 从报告中排除日期
本周一(8月26日)是英国的公共假日。我需要从我的一些报告中排除这个日期 很简单,但我有一个数据库,其中日期被分为15分钟,例如: 2019-08-2608:30:00.000 2019-08-26 16:15:00.000 我能从报告中排除所有这些日期的唯一方法是使用NOT IN,例如:Tsql 从报告中排除日期,tsql,Tsql,本周一(8月26日)是英国的公共假日。我需要从我的一些报告中排除这个日期 很简单,但我有一个数据库,其中日期被分为15分钟,例如: 2019-08-2608:30:00.000 2019-08-26 16:15:00.000 我能从报告中排除所有这些日期的唯一方法是使用NOT IN,例如: 和a.mydate不在('2019-08-26 08:30:00.000'、'2019-08-26 16:15:00.000') 这对我来说似乎是一种相当沉重的方式 还有: 和a.mydate不在“2019
和a.mydate不在('2019-08-26 08:30:00.000'、'2019-08-26 16:15:00.000')
这对我来说似乎是一种相当沉重的方式
还有:
和a.mydate不在“2019-08-26 08:30:00.000”和“2019-08-26 19:30:00.000”之间
但是,如果这方面有进展的话,了解这方面的任何进展都将是有益的,因为今后将有更多、也许更多的公共假日被排除在外
我没有一个包含假日日期的单独表,所以我需要按照上面的脚本编写
谢谢如果您有离散值,您可以将它们添加到一个表中,然后执行左联接,并在
中放置一个过滤器,其中
表示排除表的Id应该为null(表示联接失败)
例如:
SELECT
mydata
FROM
mytable mt LEFT JOIN Holidays h ON mt.mydate = h.date
WHERE
h.Id IS NULL
这只是一种可能的替代方法,因为您有离散值,我不确定它是否真的更快…这更有效:
and cast(a.mydate as date) not in
( '2019-08-26',
'2019-12-25',
'2019-12-26',
'2020-01-01',
. . . )
谢谢-是的,抱歉,我刚刚修改了我的帖子,说我没有单独的假期表格(也没有创建表格的权限)-谢谢你的回复。