Ngày hiện tại của mysql - 7 ngày
Tôi sẽ giải thích cho bạn ví dụ về cách lấy dữ liệu 7 ngày qua trong MySQL?. Bạn sẽ học cách lấy dữ liệu MySQL trong 7 ngày qua. Tôi muốn biết cách lấy truy vấn SQL dữ liệu trong 7 ngày qua Show
Bài viết này sẽ cung cấp cho bạn ví dụ đơn giản về cách lấy bản ghi 7 ngày qua trong MySQL. Chúng tôi sẽ sử dụng cách lấy dữ liệu 7 ngày qua từ một bảng trong MySQL Ví dụTrừ 10 ngày từ một ngày và trả lại ngày SELECT DATE_SUB("15-06-2017", THỜI GIAN 10 NGÀY); Tự mình thử »Định nghĩa và cách sử dụngHàm DATE_SUB() trừ khoảng thời gian/ngày từ một ngày và sau đó trả về ngày cú phápDATE_SUB(ngày, khoảng giá trị INTERVAL) Giá trị tham sốTham sốMô tảngàyBắt buộc. Ngày được sửa đổi giá trị Bắt buộc. Giá trị của khoảng thời gian/ngày để trừ. Cả giá trị dương và âm đều được phépintervalBắt buộc. Loại khoảng để trừ. Có thể là một trong các giá trị sau
chi tiết kỹ thuậtThêm ví dụVí dụTrừ 15 phút từ một ngày và trả lại ngày CHỌN NGÀY_SUB("2017-06-15 09. 34. 21", THỜI GIAN 15 PHÚT); Tự mình thử »Ví dụTrừ 3 giờ từ một ngày và trả lại ngày CHỌN NGÀY_SUB("2017-06-15 09. 34. 21", THỜI GIAN 3 GIỜ); Tự mình thử »Ví dụThêm 2 tháng vào một ngày và trả lại ngày CHỌN NGÀY_SUB("15-06-2017", THỜI GIAN -2 THÁNG); Tự mình thử »Trong bài viết này, chúng ta sẽ khám phá các cách để chọn các mục được thêm/sửa đổi trong n ngày qua bằng cách sử dụng MySQL (hoặc MariaDB). Với mục đích của bài viết này, hãy giả sử như sau
+----+--------+------------+ | id | name | date_login | +----+--------+------------+ | 1 | jane | 2020-06-12 | | 2 | john | NULL | | 3 | david | 2020-05-24 | | 4 | zayne | 2020-06-05 | +----+--------+------------+ CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05'); So sánh trực tiếp với ngày hôm nayBạn có thể chỉ cần xem ngày đăng nhập có lớn hơn ngày 7 ngày trước hay không, như vậy Sử dụng CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05'); 8SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; Nếu bạn sử dụng CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');8 mà không có SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;0, nó sẽ bao gồm ngày và giờ hiện tại Sử dụng SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; 1SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC; Sử dụng SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; 2SELECT *, (CURRENT_DATE - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURRENT_DATE - INTERVAL 7 DAY ORDER BY date_login DESC; Kết quảCREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');0 Sử dụng toán tử SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; 3CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');2 Kết quảCREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');3 Sử dụng chức năng SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; 4Bạn có thể sử dụng hàm SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;5 để tính chênh lệch số ngày giữa hai giá trị ngày, như vậy. CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');6 Kết quảCREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');7 SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;5 chỉ tính đến ngày chứ không phải thời gian Sử dụng chức năng SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC; 7Hàm SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;7 có cú pháp như sau CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');0 Ví dụ, nó trừ giá trị SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;9 với SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC;0. CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');1 Hoặc, cách khác, chúng ta có thể sử dụng hàm SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC;1 có cú pháp giống như hàm SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;7. Điều này sẽ hoạt động bằng cách sử dụng một khoảng âm cho biểu thức, ví dụ CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');2 Kết quảNếu bạn sử dụng CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');8 mà không có SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;0, nó sẽ bao gồm ngày và giờ hiện tại Kết quảCREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');0 Sử dụng chức năng SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC; 5Hàm SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC;6 có thể được sử dụng theo hai cách sau
Hãy xem xét hai ví dụ dưới đây CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');4 Hoặc, sử dụng SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;9 CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');5 Hoặc, cách khác, chúng ta có thể sử dụng hàm SELECT *, (CURRENT_DATE - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURRENT_DATE - INTERVAL 7 DAY ORDER BY date_login DESC;4 có cú pháp giống như hàm SELECT *, (CURDATE() - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURDATE() - INTERVAL 7 DAY ORDER BY date_login DESC;5. Điều này sẽ hoạt động đơn giản bằng cách sử dụng một khoảng âm hoặc một giá trị số nguyên âm trong nhiều ngày, chẳng hạn CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');6 Nếu bạn sử dụng CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');8 mà không có SELECT *, (DATE(NOW()) - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= (DATE(NOW()) - INTERVAL 7 DAY) ORDER BY date_login DESC;0, nó sẽ bao gồm ngày và giờ hiện tại Kết quảCREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(5) NOT NULL, date_login DATE, PRIMARY KEY (id) ); INSERT INTO user(name, date_login) VALUES ('jane', '2020-06-12'), ('john', NULL), ('david', '2020-05-24'), ('zayne', '2020-06-05');0 Chọn Xem nhiều nhất trong 'n' ngày quaVì đây là trường hợp sử dụng phổ biến nên chúng tôi đã nghĩ đến việc đề cập đến chủ đề này Sử dụng bất kỳ một trong các kỹ thuật được giải thích trong bài viết này, bạn có thể truy xuất các mục được xem nhiều nhất từ n số ngày qua. Tất cả những gì bạn cần làm là thêm một cột cơ sở dữ liệu bổ sung cho lượt truy cập hoặc lượt xem (hoặc thứ gì đó tương tự), cột này xác định 'lượt xem' hoặc 'lần truy cập', v.v. cho mặt hàng cụ thể đó. Sau đó, vấn đề đơn giản là sử dụng mệnh đề SELECT *, (CURRENT_DATE - INTERVAL 7 DAY) AS diff FROM user WHERE date_login >= CURRENT_DATE - INTERVAL 7 DAY ORDER BY date_login DESC;8 để sắp xếp tập kết quả Làm cách nào để lấy dữ liệu 7 ngày trong MySQL?Chúng tôi sử dụng hàm hệ thống now() để lấy giá trị ngày giờ mới nhất và mệnh đề INTERVAL để tính ngày cách đây 7 ngày .
Làm cách nào để thêm 15 ngày vào ngày hiện tại trong MySQL?Sử dụng hàm DATE_ADD() nếu bạn muốn tăng một ngày nhất định trong cơ sở dữ liệu MySQL.
Làm cách nào để lấy dữ liệu tuần hiện tại trong MySQL?Hàm WEEK() trong MySQL dùng để tìm số tuần của một ngày nhất định. Nếu ngày là NULL, hàm WEEK() sẽ trả về NULL. Mặt khác, nó trả về giá trị của tuần nằm trong khoảng từ 0 đến 53. Ngày hoặc giờ mà chúng tôi muốn trích xuất tuần.
Làm cách nào để lấy dữ liệu 3 ngày qua trong MySQL?Sử dụng cho một ngày ba ngày trước. Ở ĐÂU. ngày >= DATE_ADD(CURDATE(), INTERVAL -3 DAY); |