SQL小程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:45:11
表A中有四个字段a1,a2,a3,a4
a1的日期格式 7-22-2008或10-22-2008,因为日期有可能是2个数字
现在想做的是
a2=a1
a3=a1+3年-1天
a4=a1月份的下一个月,(只显示月份)
SQL中应该怎么写?应该如何截取

a2=a1:
update A set a2=a1

a3=a1+3年-1天:
update A set a3=dateadd(dd,-1,dateadd(yyyy,3,a1))

a4=a1月份的下一个月,(只显示月份):
update A set a4=month(dateadd(mm,1,a1))

SELECT DATEADD(yyyy,3,'7-22-2008')-1
SELECT DATEADD(mm,1,'7-22-2008')
截取 使用SUBSTRING
select SUBSTRING(cast(DATEADD(mm,1,'7-22-2008') as varchar),0,3)

1.显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)

2.显示本月最后一天
select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))

3.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

4.本月的第一个星期一
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)

5.本年的第一天
SELECT DATEADD(yy,DATEDIFF(