--获取当前月的倒数第二天
创新互联公司专业为企业提供合作网站建设、合作做网站、合作网站设计、合作网站制作等企业网站建设、网页设计与制作、合作企业网站模板建站服务,10年合作做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
SELECT DATEADD(DD,-DAY(DATEADD(M,1,GETDATE()))-1,DATEADD(M,1,GETDATE()))
--这个算法其实就是利用DATEADD函数获取指定日期在指定月的第n天,然后添加一个月时间到下个月的第n天,然后倒退n天获取指定月的最后一天,再减1就是倒数第二天
--你可以将其中GETDATE()换成你的指定日期
select * from 表 where datediff(day,日期段,getdate())=15上面这个是查询15天内的信息
1、使用getdate()获取当前时间。
2、使用dateadd()来获取当前时间的前N天日期1、后N天日期2。
3、检索窗口时间日期1,日期2.
SELECT
DATEPART(YEAR, GETDATE()) AS 年,
DATEPART(MONTH, GETDATE()) AS 月,
DATEPART(DAY, GETDATE()) AS 日,
DATEPART(HOUR, GETDATE()) AS 时,
DATEPART(MINUTE, GETDATE()) AS 分,
DATEPART(SECOND, GETDATE()) AS 秒,
DATEPART(MILLISECOND, GETDATE()) AS 毫秒,
DATEPART(QUARTER, GETDATE()) AS 季度,
DATEPART(DAYOFYEAR, GETDATE()) AS 年天数,
DATEPART(WEEK, GETDATE()) AS 年周数,
DATEPART(WEEKDAY, GETDATE()) AS 本周天数,
DATENAME(YEAR, GETDATE()) AS 年,
DATENAME(MONTH, GETDATE()) AS 月,
DATENAME(DAY, GETDATE()) AS 日,
DATENAME(HOUR, GETDATE()) AS 时,
DATENAME(MINUTE, GETDATE()) AS 分,
DATENAME(SECOND, GETDATE()) AS 秒,
DATENAME(MILLISECOND, GETDATE()) AS 毫秒,
DATENAME(QUARTER, GETDATE()) AS 季度,
DATENAME(DAYOFYEAR, GETDATE()) AS 年天数,
DATENAME(WEEK, GETDATE()) AS 年周数,
DATENAME(WEEKDAY, GETDATE()) AS 本周数
select dateadd(day, -1, getdate()) 减少1天。
DATEADD函数,可以增加/减少指定的小时、分、天、年、月、周等。
select dateadd(day, 2, getdate()) --增加两天。
select dateadd(year, -2, getdate()) --减少两年。
转自:
--DATEDIFF ( datepart , startdate , enddate )
--DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数
--DATEADD ( datepart , number, date )
--DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期
--计算一个月第一天
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
--本周的星期一,这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
--一年的第一天,现在用年(yy)的时间间隔来显示这一年的第一天。
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
--季度的第一天,假如你要计算这个季度的第一天,这个例子告诉你该如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--上个月的最后一天,这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
--去年的最后一天,连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
--本月的最后一天,现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
--本年的最后一天,你现在应该掌握这个的做法,这是计算本年最后一天脚本
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
--本月的第一个星期一,好了,现在是最后一个例子。这里我要计算这个月的第一个星期一。这是计算的脚本。
SELECT DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
--a. 本月的第一天
select dateadd(mm, datediff(mm,0,getdate()), 0) AS 本月的第一天
--b. 本月的最后一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate())+1, 0)) AS 本月的最后一天
--c. 上个月的最后一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate()), 0)) AS 上个月的最后一天
--d. 本周的星期一
select dateadd(wk, datediff(wk,0,getdate()), 0) AS 本周的星期一
--e. 本季度的第一天
select dateadd(qq, datediff(qq,0,getdate()), 0) AS 本季度的第一天
--f. 本季度的最后一天
select DATEADD(ms,-3,dateadd(qq, datediff(qq,0,getdate())+1, 0)) AS 本季度的最后一天
--g. 本月的第一个星期一
select dateadd(wk, datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) AS 本月的第一个星期一
--h. 本年的第一天
select dateadd(yy, datediff(yy,0,getdate()), 0) AS 本年的第一天
--i. 本年的最后一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate())+1, 0)) AS 本年的最后一天
--f. 去年的最后一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate()), 0)) AS 去年的最后一天