經典SQL自定義函式

2021-08-29 06:39:37 字數 1027 閱讀 9468

1、確定某年某月有多少天

實現原理:先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的

天數部分,即為當月最大日期,也即當月天數

create function daysinmonth ( @date datetime ) returns int

asbegin

return day(dateadd(mi,-3,dateadd(m, datediff(m,0,@date)+1,0)))

end呼叫示例:

select dbo.daysinmonth ('2006-02-03') 

(2)計算哪一天是本週的星期一

select dateadd(week, datediff(week,'1900-01-01',getdate()), '1900-01-01')  --返回2006-11-06 00:00:00.000

或select dateadd(week, datediff(week,0,getdate()),0)     

(3)當前季度的第一天

select dateadd(quarter, datediff(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000

(4)乙個季度多少天

declare @m tinyint,@time smalldatetime

select @m=month(getdate())

select @m=case when @m between 1 and 3 then 1

when @m between 4 and 6 then 4

when @m between 7  and 9 then 7

else 10 end

select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

select datediff(day,@time,dateadd(mm,3,@time)) —返回92

經典SQL自定義函式

1 確定某年某月有多少天 實現原理 先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的 天數部分,即為當月最大日期,也即當月天數 create function daysinmonth date datetime returns int asbegin ...

經典SQL自定義函式

1 確定某年某月有多少天 實現原理 先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的 天數部分,即為當月最大日期,也即當月天數 create function daysinmonth date datetime returns int asbegin ...

SQL自定義函式

建立使用者自定義函式 標量函式 create function dbo.bmrs bmh as int returns int asbegin declare bmrs int select bmrs count 工號 from 銷售人員where 部門號 bmh return bmrs endgo...