Trang 1 trên 1

Sử dụng lệnh between lấy giữa 2 ngày ?

Đã gửi: T.Sáu 06/01/2017 4:12 pm
gửi bởi dong
Khi sử dụng vấn tin lấy mẫu tin ngày sinh nhân viên sql server 2005 lệnh BETWEEN không lấy được ngày cuối cùng của ngày kết thúc.
Ví dụ: thống kê từ ngày sinh nhân viên '01/11/2015 đến ngày '30/11/2015 thì nó chỉ lấy tới ngày 29 có 1 vài mẫu tin của ngày 30 không lấy được, các bạn biết lỗi gì không ?

SELECT * FROM [TABNHANVIEN]
WHERE [NGAYSINH] BETWEEN '11/01/2015' AND '11/30/2015'

Re: Sử dụng lệnh between lấy giữa 2 ngày ?

Đã gửi: T.Bảy 21/01/2017 6:54 pm
gửi bởi akira
SET DATETIME DMY

SELECT * FROM [TABNHANVIEN]
WHERE [NGAYSINH] BETWEEN '01/11/2015' AND '30/11/2015'

Re: Sử dụng lệnh between lấy giữa 2 ngày ?

Đã gửi: T.Hai 23/01/2017 2:42 pm
gửi bởi vietteiv
trong sql khi đụng tới cột ngày tháng thì nó kiểm tra đến giờ phút giây. mặc dù dữ liệu của bạn khi insert vào ko có thời gian nhưng cấu trúc của nó vẫn sẽ là: [1975-01-11 00:00:00.000]

nên khi lấy dữ liệu mà ko quan tâm thời gian thì tốt nhất là convert nó lại, tham số ngày truyền vào theo cấu trúc: yyyy-mm-dd

Mã: Chọn hết

SELECT * FROM [TABNHANVIEN]
WHERE CONVERT(DATETIME,CONVERT(VARCHAR(10),NGAYSINH,102),102) BETWEEN CONVERT(DATETIME,'2015-11-01') AND CONVERT(DATETIME,'2015-11-30')

Re: Sử dụng lệnh between lấy giữa 2 ngày ?

Đã gửi: T.Bảy 11/02/2017 11:46 am
gửi bởi godcry
public IEnumerable<RECEIVE> seachDate( DateTime? searchStartDate, DateTime? searchEndDate, int page, int pagesize)
{

IQueryable<RECEIVE> model = db.RECEIVEs;

if (searchStartDate != default(DateTime) && searchEndDate != default(DateTime))
{

//DateTime inclusiveStart = searchStartDate.Date;

//DateTime exclusiveEnd = searchEndDate.Date.AddDays(1);
model = model.Where(x => x.NGAYKICHHOAT >= searchStartDate && x.NGAYKICHHOAT <= searchEndDate);
}
return model.OrderByDescending(x => x.ID).ToPagedList(page, pagesize);
}