Hàm DAY, MONTH, YEAR trả về ngày, tháng, năm

Đôi khi bạn chỉ lấy một phần nào đó trong ngày/tháng/năm để thao tác, ví dụ:

Câu 1: Lấy nhân viên có năm sinh nhỏ hơn 1983

Câu 2: Lấy tất cả nhân viên có ngày sinh trong tháng 5

Câu 3: Lấy tất cả nhân viên có ngày sinh là ngày 15.

Bạn dùng lần lược các hàm YEAR, MONTH DAY để lọc ra dữ liệu cho các yêu cầu trên.

Hàm YEAR trả về năm từ ngày/tháng/năm được truyền vào

Hàm MONTH trả về tháng từ ngày/tháng/năm được truyền vào

Hàm DAY trả về ngày từ ngày/tháng/năm được truyền vào

Cú pháp:

  • YEAR (date)
  • MONTH (date)
  • DAY (date)

Trong đó:

  • date: một biểu thức dạng datetime hay smalldatetime, hay một chuỗi có định dạng ngày như ‘8/31/2010’

Cả 3 hàm YEAR, MONTH DAY đều trả về số nguyên.

Giả định bạn có bảng dữ liệu với các cột như sau: NHANVIEN(MANV, HOTEN, NGAYSINH)

Lần lược trả lời câu 1, 2 và 3 của ví dụ trên như sau:

--Câu 1:

SELECT NV.HOTEN FROM NHANVIEN AS NV WHERE YEAR(NV.NGAYSINH) < 1983

--Câu 2:

SELECT NV.HOTEN FROM NHANVIEN AS NV WHERE MONTH(NV.NGAYSINH) = 5

--Câu 3:

SELECT NV.HOTEN FROM NHANVIEN AS NV WHERE DAY(NV.NGAYSINH) = 15

9 comments

  1. Bạn nào có hàm kiểm tra dữ liệu nhập vào của 1 textbox có phải là ngày tháng năm hay ko cho mình xin với

      1. có cách nào để học nhanh ex ko chị ơi?e cần học ex trong xây dựng gấp..chị xem có cách nào giúpn dc e ko ạ? a thaks chị nihều

  2. bạn xem giúp mình cái function này.

    select proID,
    proName,
    quantity,
    CONVERT(varchar, startDate, 101) AS startDate,
    DATEPART(year, startDate) AS Yr,
    DATEPART(month, startDate) AS Mth,
    detail
    from
    tblProduct
    where
    MONTH(startDate)=$P{month},
    and
    YEAR(startDate)=$P{year}

  3. SELECT * FROM `infor` WHERE YEAR(dates) <= 2009 Câu SQL đơn giản thế này mà còn không ra được hức.

Leave a Reply

Your email address will not be published. Required fields are marked *