Định dạng datetime trong sql

     

Kiểu tài liệu ngày tháng (date/time) không giống những kiểu dữ liệu nguyên thuỷ thông thường nên thường xuyên gây trở ngại cho các bạn lập trình viên tuyệt nhất là khi thao tác với những câu lệnh mysql, trong nội dung bài viết này mình đã tổng hợp cùng hướng dẫn các bạn làm việc với thứ hạng date/time trong mysql


*

1. Kiểu dữ liệu ngày SQL.

Bạn đang xem: định dạng datetime trong sql

MySQL có những loại tài liệu sau cho ngày hoặc cực hiếm ngày / thời gian trong các đại lý dữ liệu:

Date - format YYYY-MM-DDDATETIME - format: YYYY-MM-DD HH:MI:SSTIMESTAMP - format: YYYY-MM-DD HH:MI:SSYEAR - format YYYY hoặc YY

Sql server có những loại dữ liệu sau cho ngày hoặc quý hiếm ngày / thời gian trong cửa hàng dữ liệu:

DATE - format YYYY-MM-DDDATETIME - format: YYYY-MM-DD HH:MI:SSSMALLDATETIME - format: YYYY-MM-DD HH:MI:SSTIMESTAMP - format: 1 số duy nhất

2. Các funtion thường sử dụng.

TênChức năng
DATE()Trả về ngày từ bỏ biểu thức datetime
CURDATE()Trả về ngày hiện tại của sản phẩm tính
YEAR()Trả về năm của ngày sẽ chỉ định
MONTH()Trả về mon của ngày vẫn chỉ định
DAY()Trả về ngày của ngày được chỉ định
TIME()Trả về tiếng của ngày được chỉ định
DATE()Trả về ngày từ bỏ biểu thức datetime
DATE_ADD()Trả về ngày từ bỏ biểu thức datetime
DATEDIFF()Trả về ngày trường đoản cú biểu thức datetime
DATE_SUB()Trả về ngày từ bỏ biểu thức datetime
NOW()Trả về thời hạn hiện tại
DAYOFWEEK()Trả về ngày của tuần
DAYNAME()Trả về tên ngày
MONTHNAME()Trả về thương hiệu tháng
STR_TO_DATE()Format chuỗi về ngày

....... Trong khi còn không ít hàm khác nhưng mình xin phép trình bày một số hàm mà họ hay thực hiện như trên.

3. Tính toán

3.1 Còn từng nào ngày nữa ?

Câu hỏi này chắc chắn là chạy qua đầu của chúng ta ít độc nhất vô nhị là sản phẩm tuần còn nếu như không nói là sản phẩm ngày

MySQL giải quyết và xử lý loại câu hỏi này với hàm DATEDIFF()

DATEDIFF() trừ hai quý hiếm ngày và trả về số ngày giữa chúng.

SELECT DATEDIFF(CURDATE(), birthday) AS days_difference FROM friends LIMIT 5;và hiệu quả là phía trên :

*

sau khi lấy được số ngày, bạn có nhu cầu xem người đó năm nay bao nhiêu tuổi bạn chỉ việc chia đến 365 ngày là ra tác dụng số tuổi.

SELECT ROUND(DATEDIFF(CURDATE(), birthday) / 365, 0) AS years FROM friends LIMIT 5;

*

Hàm ROUND()toán học tập được sử dụng để làm tròn tác dụng thành một số trong những nguyên.

Bạn cũng rất có thể tính toán tuổi của friends bằng phương pháp sau

SELECT first_name, last_name, (YEAR(CURDATE()) - YEAR(birthday)) - (RIGHT(CURDATE(), 5) Giải ưa thích 1 chút :

Hàm CURDATE () trả về ngày hiện tại của sản phẩm tính, hàm YEAR () trả về năm của ngày đã chỉ định, hàm MONTH () trả về mon của ngày sẽ chỉ định, hàm DAY () trả về ngày của ngày được hướng đẫn Hàm RIGHT () trả về số lượng ký tự như được chỉ định trong hàm từ chuỗi hoặc ngày đang cho. Phần của biểu thức so sánh những trả về từ hàm RIGHT () cầu tính 1 hoặc 0. Kết quả là :

*

Sau lúc select được số tuổi của các friend trong khoa trong menu friend của mình bạn muốn sắp xếp số tuổi theo thứ tự bớt dần hoặc tăng dần thì họ chỉ cần

ORDER BY age ASC; //sắp xếp tăng dầnORDER BY age DESC; // bố trí giảm dần vào thời điểm cuối mệnh đề trên.

3.2 bọn họ không khi nào quên sinh nhật yêu cầu không?

Giả sử bọn họ muốn biết ngày trong tuần là sinh nhật của một người bạn. Chắc rằng chúng tôi chú ý vào friends bàn hàng tuần và hiểu rằng ai vẫn sinh nhật, ví như có, và ghi chú ngày bây giờ là ngày gì.

Các DAYOFWEEK()hàm trả về một giá trị số mang lại tham số giá trị ngày tháng. Những số lượng đó đại diện thay mặt cho:

1 = nhà nhật,

2 = sản phẩm hai, v.v.

Chúng ta có thể đặt một CASE biểu thức để áp dụng ở đây.

Xem thêm: Phải Làm Gì Khi Bị Tăng Huyết Áp Đột Ngột? Cách Xử Lý Ai Cũng Cần Nhớ

SELECT first_name, last_name, birthday, CASE WHEN DAYOFWEEK(birthday) = "1" THEN "Sunday" WHEN DAYOFWEEK(birthday) = "2" THEN "Monday" WHEN DAYOFWEEK(birthday) = "3" THEN "Tuesday" WHEN DAYOFWEEK(birthday) = "4" THEN "Wednesday" WHEN DAYOFWEEK(birthday) = "5" THEN "Thursday" WHEN DAYOFWEEK(birthday) = "6" THEN "Friday" WHEN DAYOFWEEK(birthday) = "7" THEN "Saturday" ELSE "not a day of week" end AS day_of_weekFROM friendsLIMIT 10

Awesome! Điều đó hoạt động hoàn hảo. Nhưng lại nó khá dài để mang tên một ngày trong tuần.

MySQL có một function DAYNAME() tương xứng cho việc này. Đơn giản chỉ việc cung cấp cho cho nó một cực hiếm ngày và các bạn là vàng.

SELECT first_name, last_name, DAYNAME(birthday)FROM friendsLIMIT 10

3.3 up date tháng

Các hàm MONTH() được sử dụng để lấy các quý giá số theo tháng xuất phát từ một giá trị tháng ngày cung cấp. Như trong một nghĩa (tháng 1) cùng 12 cho (tháng 12) với tất cả thứ khác ở giữa.

SELECT (MONTH(birthday)) AS month, COUNT(*) AS number_of_birthdaysFROM friendsGROUP BY monthORDER BY month ASCTrong truy hỏi vấn này, hàm COUNT() mang đến số người dân có ngày sinh trong những tháng :

*

Vậy liệu bạn cũng có thể lấy tên của tháng không ? câu trả lởi chắc chắn là là tất cả rồi

Sử dụng hàm MONTHNAME(), lấy tên của Tháng thực tiễn từ quý hiếm ngày đã qua, đối với số tháng qua MONTH().

SELECT DISTINCT (MONTHNAME(birthday)) AS month, COUNT(*) AS number_of_birthdaysFROM friendsGROUP BY monthKết quả

*

3.4 xử lí ngày

Khi chúng ta có thêm một người các bạn mới, các bạn vui vẻ nhập tin tức người các bạn ấy vào Nhưng, ngày sinh nhật ở dạng chuỗi như 'ngày 10tháng 08 năm 2017'.

SELECT STR_TO_DATE("August 10 2017", "%M %d %Y")

*

Giải thích một ít nào

%M %d,%Y được định hình là %M - thương hiệu tháng. %d - Số ngày vào tháng. %Y - 4 chữ số năm.

3.5 Ngày có giá trị NOT NULL

để kiểm soát nếu quý hiếm ngày chưa hẳn là NULL.

SELECT first_name, last_name, birthdayFROM friendsWHERE birthday IS NOT NULL;Câu lệnh MySQL ngơi nghỉ trên đã lọc những hàng bao gồm ngày birthday KHÔNG nên là NULL.

Xem thêm: Các Cách Đánh Thức Bé Dậy Theo Easy : Con Ngoan, Mẹ Nhàn, Đủ Bộ Cách Đánh Thức Trẻ Sơ Sinh Dậy Bú Hiệu Quả

3.5 mang ra những ngày trong tầm ngày từ bỏ ngày... Cho ngày ...
*

4. Kết luận

Thông qua những ví dụ thực tiễn trên, mong hoàn toàn có thể giúp họ có cái nhìn rõ hơn với câu hỏi xử lí ngày tháng bằng câu lệnh SQL. Bài viết của mình vẫn còn đấy nhiều thiếu thốn sót rất ý muốn nhận được sự góp ý góp phần của các bạn để bài viết được triển khai xong hơn

Tài liệu xem thêm :

https://www.w3resource.com/mysql/advance-query-in-mysql/date-calculation.php

https://www.w3school.com https://codeburst.io/handy-mysql-date-functions-with-examples-93dbd79849c5