Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Xử lý dữ liệu ngày tháng | Dữ liệu ngày tháng trong SQL ?

  1. #1
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Mặc định Xử lý dữ liệu ngày tháng | Dữ liệu ngày tháng trong SQL ?

    xin hỏi các bạn vấn đề sau, mình có 1 table "SinhVien" trong đó có 1 columns là "Tuoi" dữ liệu kiểu "Datetime", giờ mình muốn select tất cả những sinh viên có tuổi nằm trong khoảng '01/01/1984' đến '4/03/1988' thì làm thế nào ?, và vấn đề nữa là mình muốn lọc nhưng sinh viên có tháng sinh là '8' trong năm '1980' thì làm thế nào ?, mong các bạn giúp đỡ, CSDL mình dùng là sql2k5

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    cái này sqlserver có hỗ trợ hết, anh mở bookonline phần datetime hay smalldatetime.

    ví dụ

    SQL Code:
    1. --// Tạo table
    2. CREATE TABLE SV
    3. (
    4.     ten nvarchar(30),
    5.     ngaysinh datetime
    6. )
    7. --// insert dữ liệu
    8. INSERT INTO SV VALUES(N'zkday','12/12/1986')
    9. INSERT INTO SV VALUES(N'Tran Chuong','12/12/1987')
    10. INSERT INTO SV VALUES(N'Tran Trui','12/2/1989')
    11. INSERT INTO SV VALUES(N'Chuoi cu','2/2/1990')
    12. INSERT INTO SV VALUES(N'Chuoi nai','12/12/1987')
    13. INSERT INTO SV VALUES(N'sieu ga','12/12/1996')
    14.  
    15. --// lấy những SV có ngày sinh lớn hơn 12/12/1986 và nhỏ hơn 12/2/1990
    16. SELECT * FROM SV WHERE ngaysinh > '12/12/1986' AND ngaysinh < '12/2/1990'
    17. --// lấy những SV có tháng sinh là tháng 12  và năm sinh là 1986
    18. SELECT * FROM SV WHERE MONTH(ngaysinh) = '12' AND YEAR(NgaySinh)='1986'
    19. --// lấy những SV có tháng sinh là tháng 12  và ngày sinh là 12
    20. SELECT * FROM SV WHERE MONTH(ngaysinh) = '12' AND DAY(NgaySinh)='12'

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    lại nhỉ sao anh làm mãi mà kô ra, hay do sai ở chỗ nào

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    hì, em xài bộ sql 2000 anh xài bộ nào ạ?
    cơ mà em nghĩ trên 2000 run được thì 2k5 cũng run được... có gì để tối về em test lại trên 2k5 thử xem sao.

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    cám ơn Zkday anh làm được rồi, để so sánh thì tốt nhất convert sang 111, tức là convert (varchar(10), date, 111), làm như Zkday 1 số máy để định dạng dd/mm'yyy thì so sánh đúng còn lại dạng khác kô ra, không phải là kô ra mà là ra kô chính xác, anh cũng chưa có thời gian test kỹ nếu Zkday test rồi nói anh biết. thanks

  6. #6
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Thumbs down Date time!

    Mình nghĩ chắc phải set formatdate dmy nữa chứ, nhưng nếu chẳng hạn 2 biến ngày với ngày hoặc giờ với giờ trừ cho nhau thì nó sẽ ra biến int hay double vậy các bạn!

  7. #7
    Ngày gia nhập
    10 2010
    Bài viết
    3

    ban co the dung between ... and cho cau tuổi nằm trong khoảng '01/01/1984' đến '4/03/1988'

  8. #8
    Ngày gia nhập
    09 2011
    Nơi ở
    HCM
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    cái này sqlserver có hỗ trợ hết, anh mở bookonline phần datetime hay smalldatetime.

    ví dụ

    SQL Code:
    1. --// Tạo table
    2. CREATE TABLE SV
    3. (
    4.     ten nvarchar(30),
    5.     ngaysinh datetime
    6. )
    7. --// insert dữ liệu
    8. INSERT INTO SV VALUES(N'zkday','12/12/1986')
    9. INSERT INTO SV VALUES(N'Tran Chuong','12/12/1987')
    10. INSERT INTO SV VALUES(N'Tran Trui','12/2/1989')
    11. INSERT INTO SV VALUES(N'Chuoi cu','2/2/1990')
    12. INSERT INTO SV VALUES(N'Chuoi nai','12/12/1987')
    13. INSERT INTO SV VALUES(N'sieu ga','12/12/1996')
    14.  
    15. --// lấy những SV có ngày sinh lớn hơn 12/12/1986 và nhỏ hơn 12/2/1990
    16. SELECT * FROM SV WHERE ngaysinh > '12/12/1986' AND ngaysinh < '12/2/1990'
    17. --// lấy những SV có tháng sinh là tháng 12  và năm sinh là 1986
    18. SELECT * FROM SV WHERE MONTH(ngaysinh) = '12' AND YEAR(NgaySinh)='1986'
    19. --// lấy những SV có tháng sinh là tháng 12  và ngày sinh là 12
    20. SELECT * FROM SV WHERE MONTH(ngaysinh) = '12' AND DAY(NgaySinh)='12'
    thanks bài viết nhiều lắm.đang thắc mắc về cái này

Quyền hạn của bạn

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