sql - 选择日期和不包括年份的月份之间的日期

标签 sql sql-server date between

下面是我想做的伪代码:

DateBetween 04-01 和次年的 03-31 则输出为 Q1.

我知道如何处理年份但不排除年份。

最佳答案

我不知道输出“Q1”是什么意思。但是,如果您希望您的年份从 4 月 1 日开始(这似乎是对您的 sking 的合理解释),最简单的方法是减去天数。对于你将要处理的大多数年份,你可以这样做:

select year(dateadd(day, - (31 + 28 + 31), date) as theyear

当然,这只适用于四年中的三年,因为有闰年。解决此问题的一种方法是使用显式逻辑——但这会变得困惑。另一种方法是将剩余的月份相加并减去一年:

select year(dateadd(day, (30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31), date) - 1 as theyear

关于sql - 选择日期和不包括年份的月份之间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805950/

相关文章:

sql - 在 DELETE 中使用 CTE 未执行

sql-server - 在 SQL Server 2008 R2 中开始调试时发生错误,错误 HRESULT E_FAIL 已从对 COM 组件的调用返回。 (mscorlib)

sql-server - 安装 SQL Server 2012 错误 "The system cannot open the device or file specified."

sql - SQL Server是否默认在表的所有列上创建非聚集索引

ruby-on-rails - Ruby 比较日期

java - 将字符串格式化为 java8 ZonedDateTime

PHP 无法识别符号 '

mysql - 基于其他列sql更新列的表达式

mysql - 需要帮助构建带有 join 和 where 的多对多关系的 sql 查询

javascript - 是否有用于操作日期的 jQuery 时间/日历插件?