Chủ Nhật, 19 Tháng Năm 2024
Trang chủPHP & MysqlMySQLTìm hiểu hàm DATE_FORMAT trong MySQL - Định dạng thời gian MySQL

Tìm hiểu hàm DATE_FORMAT trong MySQL – Định dạng thời gian MySQL

Định dạng thời gian trong MySQL là một phần kiến thức khá quan trọng và thường xuyên được và cần sử dụng. Trong bài viết này chúng ta sẽ tìm hiểu về hàm DATE_FORMAT, hàm định dạng thời gian trong MySQL.

DANH SÁCH BÀI VIẾT
Hàm SUM trong MYSQL - Tính tổng một cột (Hiểu trong 5 phút)
Sử dụng IF trong MySQL - Hàm IF trong MySQL
Tìm hiểu hàm DATE_FORMAT trong MySQL - Định dạng thời gian MySQL
Tìm hiểu CASE WHEN trong MySQL - cách sử dụng và ứng dụng
Hàm Max, Min trong MySQL - Tìm kiếm lớn nhất, bé nhất trong cột

Hàm DATE_FORMAT trong MySQL

Hàm DATE_FORMAT định dạng một thời gian theo định dạng truyền vào.

Cú pháp DATE_FOMAT

DATE_FORMAT( date, format_mask )

Trong đó:

  • date: thời gian cần định dạng
  • format_mask: Chuỗi định dạng áp dụng.

format_mask sẽ bao gồm các định dạng chuỗi như sau.

Giá trịMô tả
%aViết tắt tên ngày trong tuần (Sun – Sat)
%bViết tắt tên tháng (Jan đến Dec)
%cTháng dưới dạng giá trị số (0 đến 12)
%DNgày trong tháng dưới dạng giá trị số, theo sau là hậu tố (1st, 2nd, 3rd, …)
%dNgày trong tháng dưới dạng giá trị số (01 đến 31)
%eNgày trong tháng dưới dạng giá trị số (1 đến 31)
%fGiây (000000 đến 999999)
%HHour (00 đến 23)
%h hoặc %l
Giờ (00 đến 12)
%iPhút (00 đến 59)
%jNgày trong năm (001 đến 366)
%kGiờ (00 đến 23)
%lGiờ (1 đến 12)
%MTên tháng đầy đủ (January đến December)
%mTên tháng dưới dạng giá trị số (00 đến 12)
%pAM hoặc PM
%rThời gian ở định dạng 12 giờ AM hoặc PM (hh: mm: ss AM / PM)
%SGiây (00 đến 59)
%sGiây (00 đến 59)
%TThời gian ở định dạng 24 giờ (hh: mm: ss)
%UTuần mà Chủ nhật là ngày đầu tuần (00 đến 53)
%uTuần mà thứ Hai là ngày đầu tuần (00 đến 53)
%VTuần mà Chủ nhật là ngày đầu tuần (01 đến 53)
%vTuần mà thứ Hai là ngày đầu tuần (01 đến 53)
%WTên ngày trong tuần đầy đủ (Sunday đến Saturday)
%wNgày trong tuần trong đó Chủ nhật = 0 và Thứ bảy = 6
%XNăm trong tuần mà Chủ nhật là ngày đầu tuần
%xNăm trong tuần, thứ Hai là ngày đầu tuần
%YNăm dưới dạng giá trị số, 4 chữ số
%yNăm dưới dạng giá trị số, 2 chữ số(2 số đuôi)

>> XEM THÊM: Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL

Ví dụ

Mình cần fomat ngày 2022/02/02 thành định dạng là 02-02-2022 thì mình sẽ có câu lệnh SQL như sau:

 DATE_FORMAT("2022/02/02", "%d-%m-%Y")

Áp dụng sử dụng thực tế vào bảng dữ liệu

Ví dụ 1:

Mình có một bảng token để lưu mã token đăng nhập như bên dưới ảnh(bảng này gồm rất nhiều hàng mình chỉ chụp lại một vài hàng minh họa, các ví dụ sau khi thao tác csdl có thể sẽ thấy một số dl lạ cũng kg cần thắc mắc hơn nhé).

Tìm hiểu hàm DATE_FORMAT trong MySQL - Định dạng thời gian MySQL

Bảng này có một cột là timecreate là cột để lưu lại thời gian tạo token.

Vậy bây giờ khi lấy dữ liệu ta muốn cột timecreate chỉ bao gồm ngày, tháng, năm không bao gồm giờ, phút, giây. Và theo định dạng là YYYY-mm-dd.

Viết câu lệnh MySQL như sau:

SELECT token_id, user_id, DATE_FORMAT(timecreate, "%Y-%m-%d") AS timecreate
FROM `tokens`

Lúc này kết quả trả về sẽ nhận được như bên dưới.

Tìm hiểu hàm DATE_FORMAT trong MySQL - Định dạng thời gian MySQL

Ví dụ số 2:

Cũng với bảng trên, bây giờ ta đặt ra vấn đề là lấy tất cả các hàng được tạo trong tháng 2 năm 2022.

Vậy bạn sẽ làm theo cách nào, đặt điều kiện kép timecraete lớn hơn ngày đầu tiên của tháng và bé hơn ngày cuối cùng của tháng.

Tất nhiên là cách trên cũng không sai, tuy nhiên dùng DATE_FOMAT nhìn code sẽ gọn gằng hơn. Ý tưởng là ta sẽ sử dụng hàm DATE_FOMAT để dịnh dạng cột timecraete về định dạng Năm-tháng và đem so sánh bằng với “2022-02” như vậy là được rồi.

>>XEM THÊM: Tìm hiểu AUTO_INCREMENT Field trong MySQL – Cột giá trị tự tăng dần

Câu lệnh SQL đầy đủ

SELECT token_id, user_id, DATE_FORMAT(timecreate, "%Y-%m-%d") AS timecreate 
FROM `tokens`
WHERE DATE_FORMAT(timecreate, "%Y-%m") = "2022-02";

Kết quả trả về

Tìm hiểu hàm DATE_FORMAT trong MySQL - Định dạng thời gian MySQL

Như vậy chỉ các hàng được tạo trong tháng 2 mới được lấy ra.

Cảm ơn bạn đã đọc hết bài viết! Chúc bạn học tốt!!

>> XEM THÊM: Hiển thị CODE các ngôn ngữ lập trình trong bài viết WordPress

[XEM TẤT CẢ BÀI VIẾT VỀ PHP & MYSQL TẠI ĐÂY]

XEM THÊM
Lệnh DELETE trong MySQL – Lệnh xóa bản ghi
Tìm hiểu thuộc tính AUTO_INCREMENT trong MySQL – Giá trị tự tăng dần
Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới
Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng
Mệnh đề WHERE trong MySQL – Mệnh đề điều kiện
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x