sql - 日期时间功能:学期、季度
问题描述
我基于 [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() 函数的语言在日期方面没有类似的东西对我来说似乎很奇怪。
解决方案
DATEPART适合您的情况。
CASE WHEN DATEPART(quarter,[Date]) >= 3 THEN 2 ELSE 1 END as [Semester],
DATEPART(quarter,[Date]) as [Quarter]
推荐阅读
- c# - C# - 我可以重复 SetSocketOption 吗?
- php - 记住 Token 在 Laravel Lumen 中不起作用
- android - 应用程序在启动后立即关闭,没有错误,在 VS 调试器中没有单步执行
- python - Matplotlib 没有安装在我使用 Python3 设置的 virtualenv 上
- python - 尝试获取 FTP 地址并使用输入传递给 python 中的下一个函数
- angularjs - 如何使用 ng-pattern 在函数中设置正则表达式模式
- python - 熊猫中具有特定总和长度的动态索引
- dart - Flutter:iOS 风格的导航/过渡
- php - 通过select标签选择人数时获取输入值和数值
- angular - 为什么链式 Map 运算符中缺少参数