LẤY 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 dữ liệu nguyên thuỷ thường thì nên thường xuyên gây khó khăn cho các bạn lập trình viên tốt nhất là khi làm việc với các câu lệnh mysql, trong bài viết này mình đang tổng hợp cùng hướng dẫn chúng ta làm bài toán với mẫu mã date/time trong mysql


*

1. Kiểu tài liệu ngày SQL.Bạn đang xem: mang ngày hiện tại trong sql

MySQL có những loại dữ liệu sau cho 1 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ó các loại dữ liệu sau cho 1 ngày hoặc quý giá ngày / thời hạn trong đại lý 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. Những funtion hay sử dụng.

Bạn đang xem: Lấy ngày hiện tại trong sql

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 tại của sản phẩm tính
YEAR()Trả về năm của ngày đã chỉ định
MONTH()Trả về mon của ngày đã 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 trường đoản cú 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 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ề thương hiệu tháng
STR_TO_DATE()Format chuỗi về ngày

....... Dường như còn rất nhiều hàm khác tuy nhiên mình xin phép trình bày một số trong những hàm mà chúng ta hay sử dụng như trên.

3. Tính toán

3.1 Còn bao nhiêu ngày nữa ?

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

MySQL giải quyết loại thắc mắc này cùng với hàm DATEDIFF()

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

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

*

sau khi rước được số ngày, bạn có nhu cầu xem fan đó năm nay bao nhiêu 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 học được sử dụng để gia công tròn kết quả thành một số nguyên.

Bạn cũng hoàn toàn 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 say mê 1 chút :

Hàm CURDATE () trả về ngày hiện tại tại của máy tính, hàm YEAR () trả về năm của ngày đang chỉ định, hàm MONTH () trả về mon của ngày vẫn 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ừ như được chỉ định và hướng dẫn trong hàm từ bỏ chuỗi hoặc ngày đã cho. Phần của biểu thức so sánh các trả về tự hàm RIGHT () cầu tính 1 hoặc 0. Hiệu quả là :


*

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

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

3.2 bọn họ không khi nào quên sinh nhật buộc phải không?

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

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

1 = nhà nhật,

2 = trang bị hai, v.v.

Xem thêm: Đề Thi Casio Lớp 8 Có Đáp Án Casio Lớp 8, Bộ Đề Thi Casio Lớp 8

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. Nhưng nó hơi dài để đưa tên 1 ngày trong tuần.

MySQL có một function DAYNAME() cân 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 xử lý tháng

Các hàm MONTH() được sử dụng để đưa các quý hiếm số theo tháng xuất phát từ một giá trị tháng ngày cung cấp. Như trong 1 nghĩa (tháng 1) với 12 mang lại (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 tróc nã vấn này, hàm COUNT() mang đến số người có ngày sinh trong mỗi tháng :


*

Vậy liệu bạn có thể lấy thương hiệu của tháng không ? câu trả lởi chắc hẳn rằng là gồm rồi

Sử dụng hàm MONTHNAME(), lấy tên của Tháng thực tế từ quý giá ngày vẫn 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 cập nhật ngày

Khi chúng ta có thêm một người các bạn mới, bạn vui vẻ nhập tin tức người chúng ta ấy vào Nhưng, ngày sinh nhật làm việc 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 chút nào

%M %d,%Y được định dạng là %M - tên 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

để bình chọn nếu cực hiếm ngày chưa hẳn là NULL.

Xem thêm: Bài Tập Oracle Có Lời Giải, Bài Tập Truy Vấn Oracle (Có Lời Giải)

3.5 lấy ra những ngày trong vòng ngày tự ngày... đến ngày ...

4. Kết luận

Thông qua những ví dụ thực tiễn trên, mong rất có thể giúp bọn họ có cái nhìn thấy được rõ hơn với việc xử lí ngày tháng bởi câu lệnh SQL. Nội dung bài viết của mình vẫn còn đó nhiều thiếu thốn sót rất mong nhận được sự góp ý góp phần của các bạn để 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