• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

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

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 566
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 11 time
Been thanked: 1 time

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

Gửi bàigửi bởi dong » T.Sáu 06/01/2017 4:12 pm

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'



Hình đại diện của người dùng
akira
Thành viên danh dự
Thành viên danh dự
Bài viết: 354
Ngày tham gia: T.Bảy 25/10/2008 11:11 pm
Has thanked: 6 time
Been thanked: 68 time

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

Gửi bàigửi bởi akira » T.Bảy 21/01/2017 6:54 pm

SET DATETIME DMY

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

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1318
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 68 time
Liên hệ:

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

Gửi bàigửi bởi vietteiv » T.Hai 23/01/2017 2:42 pm

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')

godcry
Thành viên chính thức
Thành viên chính thức
Bài viết: 11
Ngày tham gia: T.Năm 12/01/2017 1:20 pm

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

Gửi bàigửi bởi godcry » T.Bảy 11/02/2017 11:46 am

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);
}


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.4 khách