--************
--在兩個日期範圍裡所跨越那幾周返回如: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 ...