SQL获取每月最后一天记录
2012-07-06 11:04
274 查看
DECLARE@dtdatetime
SET@dt=GETDATE()
DECLARE@numberint
SET@number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECTCONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECTCONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')
--B. 季度的最后一天(CASE判断法)
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASEWHENDATEPART(Quarter,@dt)
in(1,4)
THEN'31'ELSE'30'END)
--C. 季度的最后一天(直接推算法)
SELECTDATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')
--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECTCONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B. 月的最后一天
SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C. 月的最后一天(容易使用的错误方法)
SELECTDATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
--4.指定日期所在周的任意一天
SELECTDATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
SET@dt=GETDATE()
DECLARE@numberint
SET@number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECTCONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECTCONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')
--B. 季度的最后一天(CASE判断法)
SELECTCONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASEWHENDATEPART(Quarter,@dt)
in(1,4)
THEN'31'ELSE'30'END)
--C. 季度的最后一天(直接推算法)
SELECTDATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')
--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECTCONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B. 月的最后一天
SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C. 月的最后一天(容易使用的错误方法)
SELECTDATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
--4.指定日期所在周的任意一天
SELECTDATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
相关文章推荐
- SQL获取每月最后一天记录
- SQL获取每月第一天和最后一天记录
- SQL获取每月最后一天记录
- SQL获取每月最后一天记录
- SQL获取每月最后一天记录
- SQL Server学习记录之获取每月每季度每年第一天和最后一天
- SQL Server学习记录之获取每月每季度每年第一天和最后一天
- SQL和Oracle获取每周、每月、每年第一天和最后一天
- SQL 获取当前月的第一天最后一天获取当月最大最小的时间当月天数,当月第一天,当月最后一天
- 每日总结:DataTabel排序、获取某个月的第一/最后一天、Sql中Replace、SubString、Lrim、Rtrim函数、常用的日期格式
- sql中获取周、月、季度、年的第一天与最后一天
- SQL获取本周,上周,本月,上月第一天和最后一天[注:本周从周一到周天]
- SQL - 根据一日期获取该月的第一天和最后一天
- 每日总结:DataTabel排序、获取某个月的第一/最后一天、Sql中Replace、SubString、Lrim、Rtrim函数、常用的日期格式
- sql server 获取本月的第一天和最后一天
- oracle获取当年第一天和最后一天的sql
- 获取本月、本季、本年最后一天等等sql(sql server)
- sql 获取上周和本周的第一天和最后一天
- PHP获取每月第一天与最后一天
- SQL中获取当月的最后一天