我只需要选择给定日期时间变量的月份的第一天.
我知道使用这种代码很容易:
select CAST(CAST(YEAR(@mydate) AS VARCHAR(4))
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
但这不是很优雅,也可能不是很快.
有一个更好的方法吗?我正在使用SQL Server 2008.
我有一个@StartDate和@EndDate.
我需要@StartDate作为查询运行的那一天(这将始终是本月的第一天)和@EndDate在月末是exaclty,无论月份是30天还是31天等.
我找到了一些帖子(例如SQL查询以查找当月的最后一天,获取SQL中每月的最后一天)以获取该月的最后一天,但有没有办法确定日期是否为这个月的最后一天?
例如,如果我有这些日期的清单 -
8/29/2015 --fail
8/30/2015 --fail
8/31/2015 --pass
9/1/2015 --fail
Run Code Online (Sandbox Code Playgroud)
我怎么能写一个查询来确定哪些日期通过/失败?我不能简单地测试DAY()= 31,因为这些月份并不都具有相同的天数.