Giúp mình so sánh ngày, tháng, năm với!!

0 thích 0 không thích
635 lượt xem
đã hỏi 26 Tháng 1, 2016 trong Lập trình VB.NET bởi zcomputerz (240 điểm)
Vấn đề của mình là như thế này:

trong SQL mình có trường ngày đến hẹn (ndh), giờ mình muốn lấy ngày tháng năm của hệ thống so sánh với ndh, nếu như còn 02 ngày nữa là ndh trùng với ngày hệ thống thì thông báo "còn 02 ngày nữa là ông A hoặc bà A sẽ đến hẹn".

Rất mong các bạn giúp mình. Cám ơn bạn đã đọc câu hỏi của mình.
    

1 câu trả lời

1 thích 0 không thích
đã trả lời 26 Tháng 1, 2016 bởi Mr. Cùi Bắp (5,140 điểm)
sửa nội dung 26 Tháng 1, 2016 bởi Mr. Cùi Bắp

Code C# (Bạn có thể dùng phần mêm để convert sang VB.NET)

TimeSpan ts = DateTime.Now.Subtract(ndh); //Lấy ngày thời gian hiện tại trừ ngày đến hẹn
double so_ngay = ts.TotalDays() ;//Tổng số ngày còn lại
if (so_ngay <= 2)
{
//Thông báo
}

Nếu bạn muốn thực hiện luôn trên SQL thì mình có 1 gợi ý dành cho bạn:

declare @ndh date = '2016-01-25' --Ngày đến hẹn
declare @so_ngay int = day(getdate()) - day(@ndh) --Lấy ngày hệ thống trên SQL trừ ngày đến hẹn
select case when  @so_ngay <= 2 then N'Còn ' + REPLACE(STR(@so_ngay,2),' ','0') + N' ngày nữa là ông A đến hẹn'  else '' end --Hiển thị thông báo ngược lại thì trả về rỗng
đã bình luận 27 Tháng 1, 2016 bởi zcomputerz (240 điểm)
Cám ơn bạn rất nhiều!
Câu hỏi của mình đã hỏi thiếu ý rồi, mình bổ sung nha. Nếu còn 02 ngày nữa là đến hẹn thì chương trình hiện thông báo của cả dòng đó. tức là lấy ngày hệ thống trừ ngày đến hẹn nếu còn 02 ngày nữa thì thông báo cũng được lấy từ SQL ra để thông báo, lấy thông tin của cả dòng đó hiện lên thông báo. VD dòng đó có hoten, sodt, diachi. thì thông báo sẽ là "còn 02 ngày nữa là hoten, sodt, diachi sẽ đến hẹn". Mình hỏi hơi lòng vòng mong bạn thông cảm.
đã bình luận 27 Tháng 1, 2016 bởi Thảo Meo (3,920 điểm)
...