Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

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

4 posters

Go down

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

Bài gửi by huyfeng 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

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

Bài gửi by nanaly 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ễ..)
..(^_*)..
nanaly
nanaly
Cống hiến
Cống hiến

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

Về Đầu Trang Go down

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

Bài gửi by eakarthanmen 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
eakarthanmen
eakarthanmen

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

Về Đầu Trang Go down

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

Bài gửi by phamtuananh 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?
phamtuananh
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

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

Bài gửi by eakarthanmen 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
eakarthanmen
eakarthanmen

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

Về Đầu Trang Go down

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

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

thanks bác nhiều nha!
phamtuananh
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

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

Bài gửi by eakarthanmen 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 : :))
eakarthanmen
eakarthanmen

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

Về Đầu Trang Go down

Code tìm ngày cuối cùng của tháng Empty 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


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