sql-server - 日期介于任何一年的第 1 个月的 1 日和第 7 个月的 29 日之间(Sql Server 2008+)

标签 sql-server

我需要检查日期是否介于任何一年的第 1 个月的 1 日和第 7 个月的 29 日之间。 在继续并从日期中提取月日并将其与 0101 和 0729 之间(或只是检查日期 dd mm 是否小于 629)类型的丑陋解决方案进行比较之前,我必须问是否有检查是否有任何功能date 介于特定的 days 和 month 之间,它是年份的不变量。

否则从日期中提取月份和日期并做一些 hacky 算术很容易,但我想为那些会追随我的可怜的程序员留下更好的代码,而不必猜测为什么有些怪异的编造算术正在进行中,即使需要更长的时间,我也宁愿明确。

最佳答案

另一种选择:

DECLARE @TheDate date = '2016-07-29';

SELECT 1 
WHERE DATEADD(Year, -(YEAR(@TheDate) - 2000), @TheDate) 
    BETWEEN '2000-01-01' AND '2000-07-29'

关于sql-server - 日期介于任何一年的第 1 个月的 1 日和第 7 个月的 29 日之间(Sql Server 2008+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154707/

相关文章:

sql-server - 根据指向同一表的字段对查询进行排序

sql-server - SQL Server - varchar 值的转换溢出了 int 列

sql-server - TFS 2015 和 SQL Server 2016 兼容性

sql - 如何使用 SQL 进行递归连接以获取最低级别的数据

sql - 如何将 FetchXML 中的 operator = "eq-userid"语句转换为 SQL 代码

c# - SQL Server 存储过程在网络集群中执行得更好吗?

sql - 通过 Min/Max/Avg 操作对表中的值进行分组

sql - 计算查询中的行数作为列

SQL Server : export query as a . txt 文件

json - 嵌套存储在字符串变量中的 JSON 对象