获取SQL Server 2005中任意月份的EOM和MOM

获取SQL Server 2005中任意月份的EOM和MOM,sql,sql-server-2005,tsql,date,Sql,Sql Server 2005,Tsql,Date,我每15天有一段时间,妈妈和EOM 我需要检查的是日期字段上的日期值是否早于当前期间减去1 例如,如果今天是12/29,那么周期是12/31,我需要检查 if prior < 12/15 如果之前

我每15天有一段时间,妈妈和EOM

我需要检查的是日期字段上的日期值是否早于当前期间减去1

例如,如果今天是12/29,那么周期是12/31,我需要检查

if prior < 12/15
如果之前<12/15
如何使用GETDATE()函数获取EOM(月末,我的意思是一个月的最后一天)和MOM(月中,就像每个月的15日),而不使用-15天的DATEADD(因为2月将失败,我不关心这个月)

任何帮助或解决方法都将被珍视


谢谢

在工作环境中思考,我所做的是:

如果实际日期<15,则取当月实际日期,转换为当月第一天(01)减去1天。我得到上个月的最后一天。(EOM-1期)

如果实际日期>15,则上一期间(MOM-1期间)为:实际月份的15

这是一个带有if结构的查询

如果有人有更好的答案,请回答,我会接受。


谢谢:)

如果需要值15,请将其放入代码中

如果这违反了公司的政策,那么就向制定该政策的人提出质疑。写5行代码来替换两个字符不是一个好的编码


如果写这5行代码使你的应用程序更加灵活,那么也许我能理解,但你仍然在“硬编码”15到你的比较中

那么妈妈2月份应该是14岁?不是真的,总是15岁,但我不想硬编码。例如:1月15日和31日,2月15日和28日或29日,3月15日和31日,4月15日和30日,5月15日和31日,等等。嗯,这似乎是一种对妈妈进行硬编码的情况。你不想硬编码有什么特别的原因吗?想想硬编码,每15个月和每月的计数。凭什么?