思路是取得本月的最后一天,之后再取改天的日期号即可
**千万注意不能用下一个月的今天,和本月今天作datediff
如果这样的话,当本月有31号,而下一个月没有31号时得到的将是下一个月的天数
SELECT
Day
(
dateadd
(ms,
-
3
,
DATEADD
(mm,
DATEDIFF
(m,
0
,
getdate
())
+
1
,
0
)))
-- 存取思路是取得下一个月的第一天,之后再向前推一天,就是本月的最后一天
-- 其中 select DATEDIFF(m,0,getdate()) --会得到本月的月份号与公元1000年之间的差距,
-- 注意得到的是今天和公元1000年做比较的月份差 -
- 不是与公元0年的月份差,如果今天是2008年2月11日,执行该语句的结果是1297
-- +1后得到下个月的月份数
select DATEADD (mm, DATEDIFF (m, 0 , getdate ()) + 1 , 0 )
-- 将得到下个月的1号的0分0秒
select dateadd (ms, - 3 , DATEADD (mm, DATEDIFF (m, 0 , getdate ()) + 1 , 0 )))
-- 将向前推3秒,得到本月份的最后一天
-- 存取思路是取得下一个月的第一天,之后再向前推一天,就是本月的最后一天
-- 其中 select DATEDIFF(m,0,getdate()) --会得到本月的月份号与公元1000年之间的差距,
-- 注意得到的是今天和公元1000年做比较的月份差 -
- 不是与公元0年的月份差,如果今天是2008年2月11日,执行该语句的结果是1297
-- +1后得到下个月的月份数
select DATEADD (mm, DATEDIFF (m, 0 , getdate ()) + 1 , 0 )
-- 将得到下个月的1号的0分0秒
select dateadd (ms, - 3 , DATEADD (mm, DATEDIFF (m, 0 , getdate ()) + 1 , 0 )))
-- 将向前推3秒,得到本月份的最后一天