sqlserver中返回旬開始日期和結束日期的函數

這段時間的項目用到了sql server,於是一邊學習,一邊開發;

今天學習了函數的創建,該函數的功能如題所示;

USE [EUC]
GO

/****** Object:  UserDefinedFunction [dbo].[get_xun]    Script Date: 06/06/2014 16:38:04 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  <Author>
-- Create date: <Create Date,2014-06-06>
-- Description: <Description,">
-- Parameter desc: @date 輸入’yyyy-mm-dd’ ;@startorend 1代表旬開始,其他數字代表旬結束
-- =============================================
CREATE  FUNCTION  [dbo].[get_xun]
(
@date date,@startorend int
)
RETURNS date
as
    BEGIN
 declare
    @return_date date,
    @year int,
    @month int,
    @day  int
    set @year=(select YEAR(@date))
    set @month=(select MONTH(@date))
    set @day=(select DAY(@date))
       
   if @startorend=1
      if @day<=10 
             set @return_date=(select dateadd(dd,-day(@date)+1,@date) )
        else if @day<=20
             set @return_date=(select dateadd(dd,-day(@date)+11,@date) )
        else
             set @return_date=(select dateadd(dd,-day(@date)+21,@date) )
     
   else   
      if @day<=10
             set @return_date=(select dateadd(dd,-day(@date)+10,@date) )
         else if @day<=20 
             set @return_date=(select dateadd(dd,-day(@date)+20,@date) )
        else
             set @return_date=(select dateadd(dd,-1,dateadd(m,1,dateadd(dd,-day(@date)+1,@date))))
        
      RETURN @return_date     
 END

GO


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章