NGÀY HIỆN TẠI TRONG SQL

     

Kiểu dữ liệu ngày tháng (date/time) rất khác những kiểu tài liệu nguyên thuỷ thường thì nên thường 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 bài viết này mình vẫn tổng hợp với hướng dẫn chúng ta làm câu hỏi với giao diện date/time trong mysql


*

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

Bạn đang xem: Ngày hiện tại trong sql

Bạn đã xem: rước ngày hiện tại trong sql

MySQL có những loại tài liệu sau cho 1 ngày hoặc giá trị ngày / thời gian trong đạ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 loại tài liệu sau cho 1 ngày hoặc quý hiếm ngày / thời hạn 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: một số 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 hiện tại 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ờ đồng hồ 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 trường đoản cú biểu thức datetime
NOW()Trả về thời gian hiện tại
DAYOFWEEK()Trả về ngày của tuần
DAYNAME()Trả về thương hiệu ngày
MONTHNAME()Trả về tên tháng
STR_TO_DATE()Format chuỗi về ngày

....... Hình như còn không ít hàm khác nhưng mà mình xin phép trình bày một trong những hàm mà bọn họ hay sử 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 họ ít tốt nhất là sản phẩm tuần còn nếu như không nói là hàng ngày

MySQL xử lý loại thắc mắc này cùng với hàm DATEDIFF()

DATEDIFF() trừ hai quý giá ngày và trả về số ngày thân chúng.

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

*

sau khi mang được số ngày, bạn muốn xem fan đó năm nay bao nhiêu tuổi bạn chỉ việc chia đến 365 ngày là ra kết quả 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 để triển khai tròn công dụng thành một trong những nguyên.

Bạn cũng rất 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 phù hợp 1 chút :

Hàm CURDATE () trả về ngày hiện tại của dòng sản phẩm tính, hàm YEAR () trả về năm của ngày sẽ chỉ định, hàm MONTH () trả về tháng của ngày sẽ chỉ định, hàm DAY () trả về ngày của ngày được chỉ định Hàm RIGHT () trả về số lượng ký từ bỏ như được hướng đẫn trong hàm từ bỏ chuỗi hoặc ngày đã cho. Phần của biểu thức so sánh những trả về từ bỏ 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 những friend vào khoa trong danh sách friend của mình bạn có nhu cầu sắp xếp số tuổi theo thứ tự bớt dần hoặc tăng vọt 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 gian cuối mệnh đề trên.

3.2 bọn họ không lúc nào quên sinh nhật đề xuất không?

Giả sử chúng ta muốn biết ngày trong tuần là sinh nhật của một bạn bạn. Có lẽ rằng chúng tôi quan sát vào friends bàn hàng tuần và biết được ai vẫn sinh nhật, ví như có, và ghi chú ngày hôm nay là ngày gì.

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

1 = nhà nhật,

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

Xem thêm: Bản Vẽ Kĩ Thuật Có Vai Trò Như Thế Nào Đối Với Sản Xuất Và Đời Sống

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" kết thúc AS day_of_weekFROM friendsLIMIT 10

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

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

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

3.3 up load tháng

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

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() cho số người 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 ko ? câu trả lởi chắc chắn rằng là có rồi

Sử dụng hàm MONTHNAME(), mang tên của Tháng thực tiễn từ cực hiếm ngày đang qua, đối với số mon 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 bạn có thêm một người các bạn mới, chúng ta vui vẻ nhập tin tức người các bạn ấy vào Nhưng, ngày sinh nhật sống 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 dạng là %M - tên tháng. %d - Số ngày trong tháng. %Y - 4 chữ số năm.

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

để kiểm soát nếu giá trị ngày chưa hẳn là NULL.

SELECT first_name, last_name, birthdayFROM friendsWHERE birthday IS NOT NULL;Câu lệnh MySQL sinh sống trên đang lọc các hàng tất cả ngày birthday KHÔNG đề nghị là NULL.

Xem thêm: Phân Tích Các Loại Cà Phê Sáng Tạo Nào Ngon Nhất ? Cà Phê Sáng Tạo 4 Trung Nguyên

3.5 lấy ra những ngày trong tầm ngày từ 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 bọn họ có cái nhìn được rõ hơn với việc xử lí ngày tháng bằng câu lệnh SQL. Nội dung bài viết của mình vẫn còn đấy nhiều thiếu hụt sót rất mong mỏi nhận được sự góp ý đóng góp của chúng ta để bài viết được triển khai xong hơn

Tài liệu tham khảo :

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