Hiển thị kết quả từ 1 đến 8 / 8
  1. #1
    Tham gia
    10-08-2007
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts

    giúp về so sánh ngày tháng trong sql

    tôi muốn hiện tất cả các cột nằm trong khoảng 21/08/2007 đến 05/09/2007, xin cám ơn
    Quote Quote

  2. #2
    Tham gia
    26-08-2002
    Location
    HCM
    Bài viết
    1,024
    Like
    2
    Thanked 30 Times in 19 Posts
    Bạn thử câu này xem :
    select * from TableX where TableX.fieldX >= '21/08/2007' or WWW.fieldX <='05/09/2007'

  3. #3
    Tham gia
    12-10-2002
    Bài viết
    231
    Like
    0
    Thanked 1 Time in 1 Post
    SELECT * FROM YourTable WHERE YourDateTimeField > '08/21/2007 AND YourDateTimeField < '09/05/2007'

  4. Thành viên Like bài viết này:


  5. #4
    Tham gia
    22-08-2007
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts
    Select * from Table where CotDate between '2007/08/21' and '2007/09/05'
    Được sửa bởi hoicobac lúc 14:24 ngày 29-08-2007

  6. #5
    Tham gia
    23-08-2007
    Bài viết
    76
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi hoicobac View Post
    Select * from Table where CotDate between '2007/08/21' to '2007/09/05'
    sai bét,sửa "to" thành "and"

  7. #6
    Tham gia
    28-02-2008
    Bài viết
    248
    Like
    50
    Thanked 6 Times in 6 Posts
    Mình dùng between mà nó chỉ so sánh ngày mà tháng năm chẳng thèm so sánh.
    Chẳng hiểu cái lỗi quái gì đây nữa.

  8. #7
    Tham gia
    09-01-2007
    Location
    http://web.soz.vn
    Bài viết
    183
    Like
    2
    Thanked 7 Times in 5 Posts

    Thông tin fix

    Quote Được gửi bởi thuy2001 View Post
    tôi muốn hiện tất cả các cột nằm trong khoảng 21/08/2007 đến 05/09/2007, xin cám ơn
    pác nên convert date sang string thì câu so sánh của pác sẽ chạy đúng(ví dụ:20110312)

    declare @datefrom varchar(8)
    declare @dateto varchar(8)
    set @datefrom = convert(varchar(8),getdate(),112)
    set @dateto =convert(varchar(8),getdate(),112)

    Select * from TableA
    where convert(varchar(8),dateA,112) >= case when @datefrom is not null and @datefrom <> '' then @datefrom else convert(varchar(8),dateA,112) then
    and convert(varchar(8),dateA,112) <= case when @dateto is not null and @dateto <> '' then @dateto else convert(varchar(8),dateA,112) then

    Trong trường hợp nếu:
    @datefrom là rỗng thì sẽ lấy hết
    @dateto là rỗng thì sẽ lấy hết

    OR

    Select * from TableA where convert(varchar(8),dateA,112) between @datefrom and @dateto

    ko biết mình viết đúng syntax của SQL ko nữa, nếu sai pác fix dùm mình.
    một vài ý của mình, mong giúp dc pác.

  9. Thành viên Like bài viết này:


  10. #8
    Tham gia
    06-11-2008
    Location
    http://www.thanhdanhsoft.com/
    Bài viết
    94
    Like
    0
    Thanked 1 Time in 1 Post
    Giải thích rất rõ, liên quan đến kiểu datetime rất lung tung, đôi khi có sự nhằm lẫn format kiểu ngày giờ mà đem so sánh nhau cũng sai kết quả.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •