Sql 获取任何年份任何月份的最后一天 declare@comonth int='10' 宣布@coyear int='2018' 选择EOMOUNT(@CoYear,@comonth)
我已将Sql 获取任何年份任何月份的最后一天 declare@comonth int='10' 宣布@coyear int='2018' 选择EOMOUNT(@CoYear,@comonth),sql,sql-server,tsql,Sql,Sql Server,Tsql,我已将@coyear设置为2018年,将@comonth设置为10年。我想要2018年10月31日的结果。(该月的最后日期)。我必须使用什么语句?这与您的相同原则,以及为什么我建议您阅读上的文档,并解释如何使用这两个函数: DECLARE@comonth int=10--不要将数值用单引号(')括起来 宣布@coyear int=2018--不要将数值用单引号(')括起来 选择EOMONTH(DATEFROMPARTS(@coyear,@comonth,1))--每个月都有一天 适用于所有版本。
@coyear
设置为2018年,将@comonth
设置为10年。我想要2018年10月31日的结果。(该月的最后日期)。我必须使用什么语句?这与您的相同原则,以及为什么我建议您阅读上的文档,并解释如何使用这两个函数:
DECLARE@comonth int=10--不要将数值用单引号(')括起来
宣布@coyear int=2018--不要将数值用单引号(')括起来
选择EOMONTH(DATEFROMPARTS(@coyear,@comonth,1))--每个月都有一天
适用于所有版本。试试这个:
DECLARE @Year int = 2030
, @Month int = 10
;
DECLARE @Date datetime = CONVERT(datetime, LTRIM(@Year*10000+@Month*100+1))
;
SELECT DATEADD(mm, 0, DATEADD(mm, DATEDIFF(mm, 0, @Date) + 1, 0))-1
如果您查看
EOMONTH
的文档,您将看到预期的第一个参数是日期和时间数据类型。第二个选项是可选的,它会在日期后添加多个月。