首页 > 解决方案 > 日期时间功能:学期、季度

问题描述

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

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

这些工作,但我想知道是否有更简单/更优雅的解决方案(尽管我已经检查了 datetime 函数)。

对我来说,具有 ntile() 函数的语言在日期方面没有类似的东西对我来说似乎很奇怪。

标签: sqlsql-servertsqldatetime

解决方案


DATEPART适合您的情况。

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

推荐阅读