sql有關日期的實現

2021-03-31 08:56:30 字數 1695 閱讀 5542

--************

--在兩個日期範圍裡所跨越那幾周返回如:1,2表是第一周和第二週,

declare @aa table (date datetime,weekdays int )  

declare @i int   

set @i=datediff(day,@bdate,@edate)   

while(@i>=0)   

begin   

insert @aa   

values (dateadd(day,@i,@bdate),datepart(week,dateadd(day,@i,@bdate)))   

set @i=@i-1   

end 

select weekdays  

into #week 

from @aa group by weekdays

--************

--在日期範圍裡減去周

六、週日的天數

create function a (@sdate datetime ,@edate datetime) 

returns   int 

as 

begin 

declare @aa table (date datetime) 

declare @i int 

set @i=datediff(day,@sdate,@edate) 

while(@i>=0) 

begin 

insert @aa  

values (dateadd(day,@i,@sdate)) 

set @i=@i-1 

end 

select @i= count(*)  from @aa where   datepart(weekday,date) not in (1,7)  

return @i 

end 

--如:select dbo.a('2004-10-01','2004-10-11')

--返回結果為7

--***********

--輸入第幾周得到此週的開始、結束日期

declare @firstdayofyear datetime--年頭

declare @firstdayweekofyear datetime --第一周的第一天

declare @bdate datetime

declare @edate datetime

select @firstdayofyear= dateadd(yy,datediff(yy,0,getdate()),0)                

select   @firstdayweekofyear=@firstdayofyear  - datepart(dw, @firstdayofyear)+1

select  @edate=dateadd(ww,@week,@firstdayweekofyear-1 )

select @bdate=  dateadd(ww,-1,dateadd(dd,1,@edate)  )

set @bdate =convert(datetime, convert(char(10),@bdate,101))     

set @edate =convert(datetime, convert(char(10),@edate,101))

sql日期有關函式以及oracle日期有關函式

sql日期有關函式以及oracle日期有關函式 sql日期函式 dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值。dateadd datepart number,date 日期部分 縮寫 year yy,yyyy quarter qq,q month mm,m day...

sql 實現日期的補全工作

問題背景 一商場,每天都有銷售,但由於季節性原因 主要影響月 或者某些原因 主要影響日 導致按月或日統計某商品銷售額時,日期缺失。一 關於月缺失 如空調器按月統計出現如下狀態 ny 年月 mxid 明細類 xse 銷售額 ljxse 累計銷售額 200601 a001 100 100 200603 ...

跟日期有關的兩條經典SQL語句

1.用一條 語句得出某日期所在月份的最大天數?select day dateadd dd,day 2004 02 13 dateadd mm,1,2004 02 13 as day number 2.少記錄變成多條記錄問題 有表tbl 日期 收入 支出 2004 02 11 00 00 00 60 ...