Mã: CREATE FUNCTION TinhNgay( @NgayBatDau datetime, @NgayKetThuc datetime ) RETURNS varchar(100) AS BEGIN Declare @NgayCuoiThangBD as int , --Ngay cuoi thang cua ngay bat dau @NgayCuoiThangKT as int, --Ngay cuoi thang cua ngay ket thuc @GiaTriTraVe as varchar ( 100 ) -- Xac dinh ngay cuoi thang cua 2 thanh phan Set @NgayCuoiThangBD = Case When Month( @NgayBatDau ) in ( 1,3,5,7,8,10,12 ) Then 31 When Month( @NgayBatDau ) in ( 4,6,9,11 ) Then 30 Else Case When Year( @NgayBatDau ) % 4 = 0 Then 29 Else 28 End End Set @NgayCuoiThangKT = Case When Month( @NgayKetThuc ) in ( 1,3,5,7,8,10,12 ) Then 31 When Month( @NgayKetThuc ) in ( 4,6,9,11 ) Then 30 Else Case When Year( @NgayKetThuc ) % 4 = 0 Then 29 Else 28 End End -- Neu ngay cua ngay bat dau la ngay cuoi thang If Day( @NgayBatDau ) = @NgayCuoiThangBD Begin -- Neu ngay cua ngay ket thuc la ngay cuoi thang If Day( @NgayKetThuc ) = @NgayCuoiThangKT Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) ) + ' thang' -- Neu ngay cua ngay ket thuc ko phai ngay cuoi thang Else Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) - 1 ) + ' thang ' + LTrim ( day ( @NgayKetThuc ) ) + ' ngay' End -- Neu ngay cua ngay bat dau ko phai ngay cuoi thang Else Begin -- Neu ngay cua ngay ket thuc la ngay cuoi thang If Day ( @NgayKetThuc ) = @NgayCuoiThangKT Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) ) + ' thang ' + LTrim ( @NgayCuoiThangBD - day ( @NgayBatDau ) ) + ' ngay' -- Neu ngay cua ngay ket thuc ko phai ngay cuoi thang Else -- Neu ngay cua ngay ket thuc = ngay cua ngay bat dau If Day ( @NgayKetThuc ) = Day ( @NgayBatDau ) Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) ) + ' thang' -- Neu ngay cua ngay ket thuc > ngay cua ngay bat dau If Day ( @NgayKetThuc ) > Day ( @NgayBatDau ) Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) ) + ' thang ' + LTrim ( Day ( @NgayKetThuc ) - Day ( @NgayBatDau ) ) + ' ngay' -- Neu ngay cua ngay ket thuc < ngay cua ngay bat dau If Day ( @NgayKetThuc ) < Day ( @NgayBatDau ) -- Luu y: gia tri tra ve truong hop nay mang tinh Set @GiaTriTraVe = LTrim ( Datediff ( m,@NgayBatDau,@NgayKetThuc ) - 1 ) + ' thang ' + LTrim ( @NgayCuoiThangBD - Day ( @NgayBatDau ) + Day ( @NgayKetThuc ) ) + ' ngay' End RETURN ( @GiaTriTraVe ) END Cách sử dụng: Select dbo.TinhCuoc(NgayDatDau,NgayKetThuc)