Lấy ngày tháng năm trong sql

Kiểu dữ liệu ngày tháng (date/time) không giống đông đảo dạng hình dữ liệu nguyên ổn thuỷ thường thì buộc phải thường xuyên khiến khó khăn mang đến chúng ta lập trình sẵn viên nhất là khi thao tác cùng với các câu lệnh mysql, trong nội dung bài viết này mình vẫn tổng phù hợp với hướng dẫn chúng ta làm việc cùng với loại date/time vào mysql


*

1. Kiểu tài liệu ngày Squốc lộ.

Bạn đang xem: Lấy ngày tháng năm trong sql

MySQL bao gồm các một số loại tài liệu sau cho ngày hoặc quý giá ngày / thời gian vào 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ó các các loại dữ liệu sau cho ngày hoặc cực hiếm ngày / thời hạn trong cơ sở 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ố ít duy nhất

2. Các funtion hay sử dụng.

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

....... Bên cạnh đó còn không ít hàm không giống tuy vậy mình xin phép trình bày một vài hàm mà họ hay sử dụng nhỏng 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 rằng chạy qua đầu của họ tối thiểu là mặt hàng tuần nếu như không nói là hàng ngày

MySQL xử lý nhiều loại câu hỏi này cùng với hàm DATEDIFF()

DATEDIFF() trừ hai quý giá ngày cùng trả về số ngày giữa bọn chúng.

SELECT DATEDIFF(CURDATE(), birthday) AS days_difference FROM friends LIMIT 5;cùng tác dụng là trên đây :

*

sau khoản thời gian mang được số ngày, bạn muốn coi bạn đó trong năm này từng nào tuổi các bạn chỉ cần phân tách cho 365 ngày là ra hiệu quả số tuổi.

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

*

Hàm ROUND()toán học được thực hiện để gia công tròn tác dụng thành một vài ngulặng.

Quý khách hàng cũng có thể tính toán tuổi của friends bằng cách sau

SELECT first_name, last_name, (YEAR(CURDATE()) - YEAR(birthday)) - (RIGHT(CURDATE(), 5) Giải ham mê 1 chút :

Hàm CURDATE () trả về ngày hiện tại của máy tính, hàm YEAR () trả về năm của ngày vẫn hướng đẫn, hàm MONTH () trả về tháng của ngày đã chỉ định và hướng dẫn, hàm DAY () trả về ngày của ngày được hướng dẫn và chỉ định Hàm RIGHT () trả về số lượng cam kết từ nlỗi được hướng dẫn và chỉ định vào hàm trường đoản cú chuỗi hoặc ngày sẽ mang lại. Phần của biểu thức so sánh các trả về từ hàm RIGHT () ước tính 1 hoặc 0. tác dụng là :

*

Sau khi select được số tuổi của những frikết thúc vào khoa trong các mục friover của bản thân mình bạn có nhu cầu thu xếp số tuổi theo thứ từ giảm dần hoặc tăng đột biến thì họ chỉ cần

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

3.2 Chúng ta không lúc nào quên sinch nhật phải không?

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

Các DAYOFWEEK()hàm trả về một cực hiếm số mang lại tđắm say số giá trị ngày tháng. Những số lượng kia thay mặt cho:

1 = Chủ nhật,

2 = Thứ nhì, v.v.

Chúng ta rất có thể đặt một CASE biểu thức để thực hiện tại chỗ này.

Xem thêm: Bản Đồ Tư Duy Là Gì ? Những Điều Cần Biết Về Sơ Đồ Tư Duy Đẹp Sáng Tạo

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 đó vận động hoàn hảo. Nhưng nó khá dài để đưa tên 1 ngày trong tuần.

MySquốc lộ gồm một function DAYNAME() cân xứng đến câu hỏi này. Đơn giản chỉ cần cung cấp đến nó một cực hiếm ngày và các bạn là xoàn.

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

3.3 Xử lí tháng

Các hàm MONTH() được sử dụng để lấy các giá trị số theo tháng từ 1 giá trị ngày tháng hỗ trợ. Như trong 1 nghĩa (tháng 1) và 12 mang đến (tháng 12) với mọi đồ vật khác trọng tâm.

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

*

Vậy liệu chúng ta cũng có thể đem tên của mon ko ? câu trả lởi chắc hẳn rằng là có rồi

Sử dụng hàm MONTHNAME(), lấy thương hiệu của Tháng thực tế từ quý hiếm ngày đang qua, so với số Tháng qua MONTH().

SELECT DISTINCT (MONTHNAME(birthday)) AS month, COUNT(*) AS number_of_birthdaysFROM friendsGROUPhường BY monthKết quả

*

3.4 Xử lí ngày

Lúc các bạn có thêm một người bạn bắt đầu, các bạn sung sướng nhập thông báo tín đồ bạn ấy vào Nhưng, ngày sinch nhật nghỉ ngơi dạng chuỗi nlỗi 'ngày 10tháng 08 năm 2017'.

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

*

Giải ham mê một chút ít nào

%M %d,%Y được format là %M - Tên mon. %d - Số ngày vào tháng. %Y - 4 chữ thời gian.

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

nhằm bình chọn nếu giá trị ngày không hẳn là NULL.

SELECT first_name, last_name, birthdayFROM friendsWHERE birthday IS NOT NULL;Câu lệnh MySquốc lộ sống trên đang lọc những hàng tất cả ngày birthday KHÔNG phải là NULL.

3.5 Lấy ra gần như ngày trong tầm ngày từ ngày... mang đến ngày ...
*

4. Kết luận

Thông qua những ví dụ thực tiễn trên, ao ước hoàn toàn có thể góp bọn họ có cái nhìn thấy được rõ rộng với việc xử lý tháng ngày bằng câu lệnh SQL. Bài viết của chính mình vẫn còn các thiếu sót khôn xiết mong mỏi nhận được sự góp ý góp sức của chúng ta để nội dung bài viết được hoàn thành hơn

Tài liệu tìm hiểu 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

table('setting')->where("{$db->web}")->select('code_footer'); if($oh->code_footer){ # nếu có code header tùy chỉnh $code_footer = htmlspecialchars_decode($oh->code_footer); $code_footer = str_replace('[home_link]', $home, $code_footer); $code_footer = str_replace('[home_name]', $h, $code_footer); $code_footer = str_replace('[link]', $link, $code_footer); $code_footer = str_replace('[title]', $head->tit, $code_footer); $code_footer = str_replace('[des]', $head->des, $code_footer); $code_footer = str_replace('[key]', $head->key, $code_footer); $code_footer = str_replace('[image]', $head->img, $code_footer); $code_footer = str_replace('[link]', $link, $code_footer); $code_footer = str_replace('[date_Y]', date('Y'), $code_footer); echo $code_footer; } ?>