日期时间处理与统计分析的T-SQL实践
1. 日期时间查询及应用
在处理日期和时间数据时,会遇到诸多棘手的问题,如不同语言约定、舍入问题、非SARGable过滤器以及实现的局限性等。不过,我们可以通过一些方法来正确且高效地处理相关任务。
1.1 示例查询及操作
以下是一个示例查询,用于处理日期时间相关的数据:
C3 AS
(
SELECT *,
FLOOR((ROW_NUMBER() OVER(ORDER BY ts) + 1) / 2) AS p
FROM C2
CROSS APPLY ( VALUES(s - (se - s) - 1, (se - e) - e) ) AS A(cs, ce)
WHERE cs = 0 OR ce = 0
)
SELECT MIN(ts) AS starttime, MAX(ts) AS endtime
FROM C3
GROUP BY p;
GO
接着,使用以下查询将表值函数(TVF)应用于 Accounts 表(为演示目的,使用 TF 8649 强制并行):
SELECT A.actid, P.starttime, P.endtime
FROM dbo.Accounts AS A
CROSS APPLY dbo.PackedIntervals(A.actid) AS P
OPTION(QUERYTRACEON 8649);
<
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



