日期时间函数:学期、季度

Geo*_*tis 2 sql t-sql sql-server datetime

我在选择查询上使用这些公式,基于 [Date] 字段。1-6月为1个学期,7-12月为2个学期。季度是 3 个月的版本(1 月至 3 月等为 1 个月)。

case when Month([Date])>=7 then 2 else 1 end as [Semester],
ceiling((Month([Date])-1)/3)+1 as [Quarter]
Run Code Online (Sandbox Code Playgroud)

这些工作,但我想知道是否有一个更简单/更优雅的解决方案(尽管我已经检查了日期时间功能)。

我觉得奇怪的是,带有 ntile() 函数的语言在日期方面没有类似的东西。

Raz*_*tru 5

DATEPART适合您的情况。

CASE WHEN DATEPART(quarter,[Date]) >= 3 THEN 2 ELSE 1 END as [Semester],
DATEPART(quarter,[Date]) as [Quarter]
Run Code Online (Sandbox Code Playgroud)