Code tìm ngày cuối cùng của tháng

Go down

Code tìm ngày cuối cùng của tháng

Bài gửi by huyfeng on 23/11/2009, 17:47

Code:

create function fn_ngaycuoithang(@ngaythanghienhanh datetime)
returns int
as
begin
    declare @kq int
    declare @thang char(2)
    declare @nam  char(4)
    declare @ngaydauthangke datetime
    set @thang=month(@ngaythanghienhanh)
    set @nam=year(@ngaythanghienhanh)
    if @thang=12
    begin
        set @thang=1
        set @nam=@nam+1
    end
    else
      begin
        set @thang=@thang+1       
        set @nam=@nam
      end
    set @ngaydauthangke=@thang+'/1/'+@nam
    set @kq=datepart(d,@ngaythanghienhanh)+datediff(d,@ngaythanghienhanh,@ngaydauthangke)-1
    return @kq
end

--thuc thi
select dbo.fn_ngaycuoithang('1/15/2009')
--->ket quả : 31

select dbo.fn_ngaycuoithang('2/15/2009')
--->ket quả : 28
select dbo.fn_ngaycuoithang('2/15/2010')
--->ket quả : 28
=========>mình chưa xử lý năm nhuận

select dbo.fn_ngaycuoithang('3/15/2009')
--->ket quả : 31
select dbo.fn_ngaycuoithang('4/15/2009')
--->ket quả : 30
select dbo.fn_ngaycuoithang('5/15/2009')
--->ket quả : 31
select dbo.fn_ngaycuoithang('6/15/2009')
--->ket quả : 30
select dbo.fn_ngaycuoithang('7/15/2009')
--->ket quả : 31
select dbo.fn_ngaycuoithang('8/15/2009')
--->ket quả : 31
select dbo.fn_ngaycuoithang('9/15/2009')
--->ket quả : 30
select dbo.fn_ngaycuoithang('10/15/2009')
--->ket quả : 31
select dbo.fn_ngaycuoithang('11/15/2009')
--->ket quả : 30
select dbo.fn_ngaycuoithang('12/15/2009')
--->ket quả : 31
Mình code chạy được thui, chưa tối ưu lém. Các bạn xem gòi tối ưu nha.

huyfeng

Tổng số bài gửi : 9
Join date : 24/09/2009

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by nanaly on 24/11/2009, 00:17

Hi u..!!!
Thật là hâm mộ bạn quá đi ah..
Cho mình nick yahoo đi.. (có gì hỏi bài cho dễ..)
..(^_*)..
avatar
nanaly
Cống hiến
Cống hiến

Tổng số bài gửi : 376
Join date : 18/09/2009
Age : 34
Đến từ : QNgai

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by eakarthanmen on 24/11/2009, 08:31

Mình bổ sung thêm một cách nữa nhé Rolling Eyes
Code:

create function GetLastDateOfMonth(@CurrentDate datetime)
returns DateTime
As
   begin
      return (DateAdd(day,-day(@CurrentDate),dateadd(month,1,@CurrentDate)))
   end
avatar
eakarthanmen

Tổng số bài gửi : 14
Join date : 21/09/2009
Age : 31

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by phamtuananh on 24/11/2009, 11:14

eakarthanmen đã viết:Mình bổ sung thêm một cách nữa nhé Rolling Eyes
Code:

create function GetLastDateOfMonth(@CurrentDate datetime)
returns DateTime
As
   begin
      return (DateAdd(day,-day(@CurrentDate),dateadd(month,1,@CurrentDate)))
   end
DataTime với datetime có gì khác nhau ko bác?
avatar
phamtuananh
Cống hiến
Cống hiến

Tổng số bài gửi : 165
Join date : 16/09/2009

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by eakarthanmen on 24/11/2009, 11:28

Ui sorry vì làm bạn hiểu nhầm biết zậy mình cho nó đồng bộ rùi Smile

chữ hoa hay chữ thường trong MS SQL đâu có phân biệt đâu -> nó tương đương nhau đó Smile
avatar
eakarthanmen

Tổng số bài gửi : 14
Join date : 21/09/2009
Age : 31

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by phamtuananh on 24/11/2009, 15:49

thanks bác nhiều nha!
avatar
phamtuananh
Cống hiến
Cống hiến

Tổng số bài gửi : 165
Join date : 16/09/2009

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by eakarthanmen on 24/11/2009, 23:06

Heeeeee sorry bà con nhé hàm ở trên chưa chuẩn lắm mình đính chính lại tí nhé Smile
Code:

Create function GetLastDateOfMonth(@CurrentDate datetime)
returns DateTime
As
  begin
        Declare @NextMonth datetime
        set @NextMonth = dateadd(month,1,@CurrentDate)
       return (DateAdd(day,-day(@NextMonth),@NextMonth))
  end


Được sửa bởi eakarthanmen ngày 25/11/2009, 08:28; sửa lần 1. (Reason for editing : :))
avatar
eakarthanmen

Tổng số bài gửi : 14
Join date : 21/09/2009
Age : 31

Về Đầu Trang Go down

Re: Code tìm ngày cuối cùng của tháng

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết