大家猜猜,尽量在运行前试试。 A-M。 declare @year int
-- need set value for @year
print getdate()   --A
print datepart(yy,getdate()) --B
print dateadd(yy,@year-datepart(yy,getdate()),getdate())  --C
print datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate()))   --D
print dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0)    -E
print dateadd(mm,@i,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0))    --F
print datepart(dw,dateadd(mm,@i,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0)))    --G
print dateadd(dd,1-datepart(dw,dateadd(mm,@i,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0))),dateadd(mm,@i,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0)))    --H
print dateadd(mm,@i,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0))    --I
print dateadd(mm,@i+1,dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0))    --Jprint dateadd(
wk,
datediff(
wk,
0,
dateadd(
dd,
6-datepart(
day,
dateadd(
yy,
datediff(
yy,
0,
dateadd(
yy,
@year-datepart(
yy,
getdate()
),
getdate()
)
),
0
)
),
dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0)
)
),
0
)     --Kprint dateadd(ms,-3,dateadd(
mm,datediff(
m,0,dateadd(
yy,@year-datepart(yy,getdate()),getdate())
)+1,0))    --Lprint datediff(day,dateadd(
wk,
datediff(
wk,
0,
dateadd(
dd,
6-datepart(
day,
dateadd(
yy,
datediff(
yy,
0,
dateadd(
yy,
@year-datepart(
yy,
getdate()
),
getdate()
)
),
0
)
),
dateadd(yy,datediff(yy,0,dateadd(yy,@year-datepart(yy,getdate()),getdate())),0)
)
),
0
),
@last_day_of_year
)+1    --M