Kiểu Dữ Liệu Date Trong Sql

Kiểu dữ liệu ngày tháng (date/time) rất khác hồ hết hình dạng dữ liệu nguim thuỷ thông thường đề xuất thường khiến khó khăn mang đến các bạn lập trình viên độc nhất là lúc thao tác làm việc với các câu lệnh mysql, trong bài viết này mình vẫn tổng hòa hợp cùng hướng dẫn chúng ta làm việc với giao diện date/time vào mysql


*

1. Kiểu dữ liệu ngày Squốc lộ.

Bạn đang xem: Kiểu dữ liệu date trong sql

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

TênChức năng
DATE()Trả về ngày từ biểu thức datetime
CURDATE()Trả về ngày hiện giờ 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ề mon của ngày vẫn chỉ định
DAY()Trả về ngày của ngày được chỉ định
TIME()Trả về giờ đồng hồ của ngày được chỉ định
DATE()Trả về ngày từ biểu thức datetime
DATE_ADD()Trả về ngày từ bỏ biểu thức datetime
DATEDIFF()Trả về ngày từ bỏ biểu thức datetime
DATE_SUB()Trả về ngày từ bỏ biểu thức datetime
NOW()Trả về thời gian hiện nay 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

....... Bên cạnh đó còn rất nhiều hàm khác tuy vậy mình xin phxay trình diễn một số hàm nhưng mà chúng ta hay được dùng 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 chạy qua đầu của chúng ta tối thiểu là hàng tuần nếu như không nói là sản phẩm ngày

MySquốc lộ giải quyết loại thắc mắc này với hàm DATEDIFF()

DATEDIFF() trừ nhì quý giá ngày với trả về số ngày thân bọn chúng.

SELECT DATEDIFF(CURDATE(), birthday) AS days_difference FROM friends LIMIT 5;cùng hiệu quả là trên đây :

*

sau khoản thời gian rước được số ngày, bạn có nhu cầu xem người kia trong năm này từng nào tuổi bạn chỉ cần chia mang lại 365 ngày là ra công dụng số tuổi.

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

*

Hàm ROUND()toán thù học được thực hiện để làm tròn kết quả thành một số nguim.

Bạn cũng có thể tính tân oá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 thích 1 chút ít :

Hàm CURDATE () trả về ngày hiện thời của sản phẩm tính, hàm YEAR () trả về năm của ngày vẫn chỉ định, hàm MONTH () trả về mon của ngày vẫn hướng dẫn và chỉ định, 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 ký từ bỏ nlỗi được chỉ định và hướng dẫn trong hàm từ bỏ chuỗi hoặc ngày sẽ đến. Phần của biểu thức so sánh những trả về trường đoản cú hàm RIGHT () dự tính 1 hoặc 0. công dụng là :

*

Sau Lúc select được số tuổi của những friover vào khoa vào list friover của chính mình bạn có nhu cầu sắp xếp số tuổi theo sản phẩm từ bỏ giảm dần hoặc tăng đột biến thì bọn họ chỉ cần

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

3.2 Chúng ta ko khi nào quên sinch nhật đề xuất không?

Giả sử họ ý muốn biết ngày vào tuần là sinh nhật của một bạn bạn. Có lẽ Cửa Hàng chúng tôi quan sát vào friends bàn hàng tuần với hiểu rằng ai đang sinch nhật, ví như bao gồm, với ghi chụ ngày từ bây giờ là ngày gì.

Các DAYOFWEEK()hàm trả về một quý hiếm số mang lại tđam mê số cực hiếm ngày tháng. Những số lượng đó thay mặt đại diện cho:

1 = Chủ nhật,

2 = Thđọng hai, v.v.

Chúng ta rất có thể đặt một CASE biểu thức nhằm áp dụng ở chỗ này.

Xem thêm: Top 10 Phim Thái Lan Hay Nhất Về Tình Yêu Không Nên Bỏ Lỡ, Top 10+ Phim Tâm Lý Thái Lan Hay Và Đáng Xem Nhất

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ó tương đối lâu năm để lấy tên 1 ngày trong tuần.

MySquốc lộ tất cả một function DAYNAME() cân xứng mang đến câu hỏi này. Đơn giản chỉ cần cung ứng mang đến nó một cực hiếm ngày cùng 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 để đưa những giá trị số theo mon xuất phát từ một quý giá tháng ngày cung ứng. Như trong một nghĩa (tháng 1) và 12 mang lại (tháng 12) với mọi sản phẩm công nghệ không giống chính giữa.

SELECT (MONTH(birthday)) AS month, COUNT(*) AS number_of_birthdaysFROM friendsGROUPhường BY monthORDER BY month ASCTrong tầm nã vấn này, hàm COUNT() đến số người có ngày sinh trong mỗi mon :

*

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

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

SELECT DISTINCT (MONTHNAME(birthday)) AS month, COUNT(*) AS number_of_birthdaysFROM friendsGROUP.. BY monthKết trái

*

3.4 Xử lí ngày

Khi các bạn có thêm 1 tín đồ chúng ta bắt đầu, chúng ta vui tươi nhập lên tiếng fan bạn ấy vào Nhưng, ngày sinc nhật ngơi nghỉ 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 say mê một chút nào

%M %d,%Y được định hình là %M - Tên tháng. %d - Số ngày trong thời điểm tháng. %Y - 4 chữ thời gian.

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

nhằm chất vấ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 MySQL nghỉ ngơi bên trên vẫn lọc các mặt hàng tất cả ngày birthday KHÔNG buộc phải là NULL.

3.5 Lấy ra mọi ngày trong vòng ngày từ thời điểm ngày... mang lại ngày ...
*

4. Kết luận

Thông qua các ví dụ thực tế bên trên, mong mỏi có thể giúp chúng ta có cái nhìn thấy rõ hơn với Việc cập nhật tháng ngày bằng câu lệnh SQL. Bài viết của bản thân vẫn tồn tại các thiếu thốn sót rất hy vọng nhận thấy sự góp ý góp sức của chúng ta nhằm 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