Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Định dạng ngày MySQL - những điều bạn cần biết

MySQL có nguồn gốc từ ‘My’- con gái của nhà đồng sáng lập và SQL- Ngôn ngữ truy vấn có cấu trúc. Nó là một loại mã nguồn mở của hệ quản trị cơ sở dữ liệu quan hệ. Hệ thống cơ sở dữ liệu quan hệ này giúp tổ chức dữ liệu thành các bảng tương đối, do đó cho phép quan hệ cấu trúc của các tập dữ liệu khác nhau.

MySQL date là một trong những kiểu dữ liệu tạm thời có thể quản lý các giá trị dữ liệu cùng với các kiểu dữ liệu khác như kiểu dữ liệu số, kiểu dữ liệu chuỗi, kiểu dữ liệu Boolean, ngày và giờ và kiểu dữ liệu không gian.

Hàm DATE_FORMAT () được sử dụng trong MySQL để định dạng ngày tháng bằng cách sử dụng giá trị định dạng được chỉ định. Ví dụ:nếu một ngày được cung cấp, hàm sẽ định dạng nó liên quan đến các tham số được chỉ định.

Cú pháp định dạng ngày trong MySQL

 DATE_FORMAT (ngày, định dạng) 

Hàm cú pháp ở trên chấp nhận hai tham số như được hiển thị bên dưới:

  • date - Nó chỉ định ngày được định dạng
  • format - Định dạng xác định định dạng được sử dụng để định dạng ngày tháng

Dưới đây là danh sách các định dạng mà bạn nên tự làm quen khi xử lý hàm ngày.

  • % a - định dạng này hiển thị tên ngày trong tuần. nó có giới hạn từ Chủ Nhật đến Thứ Bảy.
  • % b - ký hiệu định dạng này hiển thị tên tháng. nó bị hạn chế từ tháng 1 đến tháng 12.
  • % c - ký hiệu định dạng này cho biết tên tháng dạng số. nó được giới hạn từ 0 đến 12
  • % D - biểu tượng định dạng này hiển thị giá trị số của ngày trong tháng, theo sau là hậu tố như 1 hoặc 2.
  • % e - ký hiệu định dạng này hiển thị giá trị số của ngày trong tháng. nó được giới hạn từ 0 đến 31
  • % f - ký hiệu định dạng này hiển thị micro giây. nó được giới hạn từ 000000 đến 999999.
  • % H - biểu tượng định dạng này cho biết giờ. Nó được giới hạn từ 00 đến 23.
  • % i - ký hiệu định dạng này hiển thị phút. nó được giới hạn từ 00 đến 59.
  • % j - ký hiệu định dạng này hiển thị ngày trong năm. nó được giới hạn từ 001 đến 366.
  • % M - ký hiệu định dạng này cho biết tên tháng. nó được giới hạn từ tháng 1 đến tháng 12
  • % p - biểu tượng định dạng này hiển thị PM hoặc AM
  • % S - biểu tượng định dạng này hiển thị giây. nó được giới hạn từ 00 đến 59
  • % U - biểu tượng định dạng này hiển thị các ngày trong tuần trong đó Chủ nhật là ngày đầu tiên. Nó được giới hạn từ 00 đến 53.
  • % W - ký hiệu định dạng này hiển thị các ngày trong tuần từ Chủ Nhật đến Thứ Bảy
  • % Y - ký hiệu định dạng này hiển thị giá trị số của năm dưới dạng số có 4 chữ số

Các định dạng được liệt kê ở trên trả về một ngày được định dạng.

Ví dụ 1:

Để trích xuất hoặc hiển thị năm kể từ ngày hiện tại, chúng ta sẽ thực hiện dòng lệnh sau:

 SELECT DATE_FORMAT ("2021-09-25", "% Y"); 
Đầu ra:
Ví dụ 2:

Trích xuất tên tháng từ một ngày cụ thể như được hiển thị bên dưới:

2021-09-25

 CHỌN DATE_FORMAT ("2021-09-25", "% M"); 
Đầu ra:
Ví dụ 3:

Trích xuất giờ và phút kể từ ngày được cung cấp bên dưới:

2021-09-25

 CHỌN DATE_FORMAT ("2021-09-25 10:20:23", "% H% i"); 
Đầu ra:
Ví dụ 4:

Trích xuất số ngày trong tháng từ ngày được chỉ định bên dưới:

2021-09-25

 CHỌN DATE_FORMAT ("2021-09-25", "% D"); 
Đầu ra:
Ví dụ 5:

Trích xuất tháng, ngày và năm tương ứng từ ngày được cung cấp ở đây:

2021-09-25

 SELECT DATE_FORMAT ("2021-09-25", "% M% d% Y"); 
Đầu ra:

MySQL date sử dụng định dạng; yyyy-mm-dd để lưu trữ một giá trị dữ liệu và định dạng này thường được cố định mà không có quyền thay đổi bất kỳ giá trị nào. Đối với các yêu cầu lưu trữ của MySQL, để lưu trữ một giá trị ngày duy nhất, nó sẽ sử dụng khoảng 3 byte và có giá trị ngày nằm trong khoảng từ 1000-01-01 đến 9999-12-31. Do đó, người dùng chỉ có thể lưu trữ phạm vi ngày trong số các tham số này thông qua các số nguyên. Tuy nhiên, quá trình này đánh thuế khá cao và nó sẽ yêu cầu bạn tạo ba cột, một cột cho năm, một cột khác cho tháng và cột cuối cùng trong ngày.

Điều này thường không được khuyến khích thử trong hầu hết các trường hợp nếu bạn muốn thay đổi định dạng ngày. Việc tắt "chế độ nghiêm ngặt" sẽ giúp chuyển đổi bất kỳ ngày không hợp lệ nào thành "giá trị ngày bằng 0". Ngày không hợp lệ trong trường hợp này sẽ không tuân theo định dạng ngày MySQL chuẩn, ví dụ:2020-01-24. Điều này cũng sẽ tạo ra nhu cầu phát triển 'các hàm được lưu trữ', sẽ tái tạo các hàm ngày mới được tạo của MySQL.

Giá trị ngày trong MySQL có năm 2 chữ số

MySQL sẽ chỉ chấp nhận các giá trị năm có hai chữ số trong các điều kiện sau:

  1. Các giá trị năm từ 00-69 được chuyển đổi thành 2000-2069
  2. Các giá trị của năm từ 70-79 được chuyển đổi thành 1970-1999

Tuy nhiên, bạn nên tránh sử dụng các giá trị ngày có hai chữ số vì nó không rõ ràng.
Đây là một ví dụ. Một bảng được tạo với tên "people" và có các cột "data type":

 TẠO BẢNG NẾU KHÔNG TỒN TẠI người (số nguyên JOB_ID KHÔNG ĐẦY ĐỦ DUY NHẤT TỪ KHÓA CHÍNH THỨC, JOB_TITLE varchar (35) NOT NULL DEFAULT '', MIN_SALARY decimal (6,0) DEFAULT 8000, MAX_SALARY decimal (6,0) DEFAULT NULL) ĐỘNG CƠ =InnoDB; 

Hàm sau sẽ "chèn một hàng" vào bảng "người":

 CHÈN VÀO người (JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY) 
VALUES ('5', 'Foss', '2000', '2000');

Bây giờ, hãy ‘Truy vấn dữ liệu’ từ bảng ‘mọi người’

 CHỌN * TỪ mọi người; 

Sau khi chạy các lệnh trên, bây giờ có thể sử dụng tùy chọn định dạng năm gồm 2 chữ số để chèn dữ liệu vào bảng "people":

 CHÈN VÀO người (JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY, BIRTH) 
VALUES ('6', 'FOSSLINUX', '200', '2000', '01-09-01 ');

‘01’ đã được sử dụng ở hàng đầu tiên làm năm, nằm trong khoảng (phạm vi 00-69). Sau đó, MySQL sẽ chuyển đổi nó thành 2001, trong khi ở hàng thứ hai, việc sử dụng ‘84’ nằm trong khoảng (70-99) và MySQL chuyển nó thành 1984.

Các hàm ngày trong MySQL

MySQL thường cung cấp và sử dụng một số hàm ngày tháng, giúp người dùng thao tác với dữ liệu của họ một cách hiệu quả và nhanh chóng hơn.
Ví dụ:sử dụng hàm ‘NOW ()’ giúp tìm nạp ngày và giờ hiện tại:

 CHỌN NGAY BÂY GIỜ (); 

Để chỉ nhận phần ngày của ‘DATETIME’, chỉ sử dụng hàm ‘DATE ()’:

 CHỌN NGÀY (NOW ()); 

Để lấy ngày hệ thống hiện tại, hãy sử dụng CURDATE ():

 CHỌN CURDATE (); 

Hàm ‘DATE_FORMAT’ có thể được sử dụng để định dạng giá trị ngày thành định dạng này; mm / dd / yyyy. Nó sử dụng mẫu định dạng ngày là% m /% d /% Y

 SELECT DATE_FORMAT ('2021-09-25 22:23:00', '% W% D% M% Y'); 

Nếu bạn muốn tính số ngày giữa hai giá trị ngày, hãy sử dụng hàm 'DATEDIFF':

 mysql> CHỌN DATEDIFF ('2020-09-25', '2021-09-25') ngày; 

Sử dụng hàm ‘DATE_ADD’ giúp một người thêm vài năm, tháng, tuần hoặc ngày:

 SELECT DATE_ADD ('2021-09-25', INTERVAL 31 DAY); 

Hàm ‘DATE_SUB’ cũng có thể được sử dụng để trừ khoảng ngày:

 SELECT DATE_SUB ("2021-09-25", INTERVAL 10 NGÀY); 

Sử dụng hàm tương ứng về ngày, tháng, Quý và Năm sẽ giúp bạn lấy chính xác ngày, tháng, vân vân cho một giá trị ngày như hình dưới đây:

 SELECT DAY ('2000-12-31') ngày, 
MONTH ('2000-12-31') tháng
QUARTER ('2000-12-31') quý,
NĂM ('2000-12-31') năm

Ngày ǀ tháng ǀ quý ǀ năm ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Thông tin hàng tuần của các chức năng liên quan có thể được truy cập thông qua:

 SELECT 
WEEKDAY ('2000-12-31') ngày trong tuần,
WEEK ('2000-12-31') tuần,
WEEKOFTHEYEAR ('2000-12-31') ngày trong tuần;

ngày trong tuần ǀ tuần ǀ năm trong tuần ǀ
6 ǀ 53 ǀ 52 ǀ

Hàm tuần luôn trả về một số tuần có chỉ mục dựa trên 0. Bạn sẽ cần chuyển đối số thứ hai hoặc chuyển "0" để ngăn điều này xảy ra. Vượt qua "1" sẽ trả về số tuần "được lập chỉ mục".

 WEEKDAY ('2000-12-31') ngày trong tuần, 
WEEK ('2000-12-31', 1) tuần,
WEEKOFTHEYEAR ('2000-12-31') trong tuần;

ngày trong tuần ǀ tuần ǀ tuần
6 ǀ 52 ǀ 52 ǀ

Kết luận

Đây là một bài viết hướng dẫn ngắn bao gồm định dạng ngày MySQL chủ đề. Chúng tôi hy vọng tất cả các khía cạnh bạn muốn làm quen với các định dạng ngày MySQL đã được đề cập. Hãy nhớ ủng hộ qua phần bình luận nếu bạn thấy bài viết hữu ích.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách định dạng số trong MySQL

  2. Làm thế nào để chọn hàng đầu tiên cho mỗi nhóm trong MySQL?

  3. Tại sao password_verify trả về false?

  4. Giới thiệu về các kiểu dữ liệu SQL

  5. tham gia có điều kiện trong mysql