Chúng ta có thể trừ hai ngày trong MySQL không?

MySQL DATEDIFF() trả về số ngày giữa hai ngày hoặc datetimes. Hàm này chỉ tính phần ngày từ mỗi biểu thức

cú pháp

DATEDIFF(expr1,expr2);

Tranh luận

TênMô tảexpr1Một biểu thức ngày giờ. expr2A biểu thức ngày giờ

Sơ đồ cú pháp

Chúng ta có thể trừ hai ngày trong MySQL không?

Phiên bản MySQL. 5. 6


Trình chiếu video. >

Trình duyệt của bạn không hỗ trợ video HTML5

Trình bày bằng hình ảnh

Chúng ta có thể trừ hai ngày trong MySQL không?

Ví dụ. Hàm DATEDIFF() của MySQL

Câu lệnh sau đây sẽ trả về các hàng đó từ giao dịch mua bảng trong đó chênh lệch số ngày giữa 'invoice_dt' và 'ord_date' nhỏ hơn 10

Khi làm việc với dữ liệu khách hàng hoặc theo các dự án khoa học dữ liệu chuỗi thời gian, bạn sẽ thường thấy cần phải tính toán sự khác biệt giữa hai ngày trong các truy vấn MySQL của mình. Hàm MySQL DATEDIFF() làm cho quy trình này trở nên rất đơn giản và có thể được sử dụng cho cả ngày được lưu trữ trong cột hoặc ngày bạn tự tạo

Trong hướng dẫn SQL đơn giản này, tôi sẽ chỉ ra cách bạn có thể sử dụng DATEDIFF() để tính toán sự khác biệt giữa hai ngày và tính xem đã bao lâu kể từ lần đặt hàng đầu tiên và cuối cùng của khách hàng bằng cách sử dụng một số dữ liệu thương mại điện tử thực

Thiết lập máy chủ MySQL của bạn

Nếu bạn muốn tự chạy các truy vấn này bằng Python, trước tiên bạn cần có quyền truy cập vào máy chủ MySQL và cơ sở dữ liệu để truy vấn. Tôi chạy máy chủ MySQL của mình trong bộ chứa Docker và đã tạo cơ sở dữ liệu thử nghiệm dựa trên Bộ dữ liệu bán lẻ trực tuyến được sử dụng rộng rãi

Tôi đã tạo một vài hướng dẫn từng bước mà bạn có thể làm theo để tạo bộ chứa MySQL Docker và nhập cơ sở dữ liệu MySQL vào bộ chứa Docker, vì vậy bạn có thể làm theo trên cùng một dữ liệu. Nó chỉ mất một vài phút

Cài đặt và tải các gói

Tiếp theo, bạn sẽ cần cài đặt gói SQLAlchemy được sử dụng để truy vấn MySQL và các cơ sở dữ liệu khác thông qua Pandas và trình điều khiển PyMySQL để kết nối với máy chủ MySQL từ Python. Bạn có thể cài đặt những thứ này bằng trình quản lý gói Pip, sau đó nhập các mô-đun cần thiết vào sổ ghi chép Jupyter hoặc tập lệnh Python

!pip3 install sqlalchemy
!pip3 install pymysql

import pandas as pd
from sqlalchemy import create_engine

Chọn ngày đặt hàng đầu tiên và cuối cùng của mỗi khách hàng

query = """
SELECT * FROM customers
"""

df = pd.read_sql(query, con=engine)
df.head()

customer_idrevenueordersskusunitsfirst_order_datelast_order_date014646. 0279489. 02777031967192010-12-20 10. 09. 002011-12-08 12. 12. 00118102. 0256438. 4962151641222010-12-07 16. 42. 002011-12-09 11. 50. 00217450. 0187482. 1755127690292010-12-07 09. 23. 002011-12-01 13. 29. 00314911. 0132572. 622481794771802010-12-01 14. 05. 002011-12-08 15. 54. 00412415. 0123725. 4526444772422011-01-06 11. 12. 002011-11-15 14. 22. 00

Hàm MySQL DATEDIFF() lấy hai ngày và trả về số ngày giữa chúng. Ngày đầu tiên là ngày sau và ngày thứ hai là ngày trước đó (lật chúng theo cách khác sẽ trả về giá trị âm). Vì vậy, ví dụ,

!pip3 install sqlalchemy
!pip3 install pymysql
1 sẽ trả về số ngày giữa đơn hàng cuối cùng của khách hàng và đơn hàng đầu tiên của họ

Bạn có thể sử dụng DATEDIFF() theo hai cách chính. Bạn có thể sử dụng hai giá trị cột, như được hiển thị trong ví dụ trên hoặc bạn có thể chuyển vào ngày hiện tại hoặc một ngày khác mà bạn đã tạo hiện không được lưu trữ trong giá trị cột MySQL

Ví dụ: giả sử chúng tôi muốn tính xem đã bao nhiêu ngày kể từ khi mỗi khách hàng đặt đơn hàng đầu tiên. Chúng ta có thể làm điều này bằng cách chuyển vào hàm

!pip3 install sqlalchemy
!pip3 install pymysql
3 làm đối số đầu tiên, hàm này trả về ngày giờ hiện tại của MySQL, sau đó chuyển
import pandas as pd
from sqlalchemy import create_engine
0 làm đối số thứ hai như thế này.
import pandas as pd
from sqlalchemy import create_engine
1. Bạn có thể làm tương tự với
import pandas as pd
from sqlalchemy import create_engine
2 để tìm số ngày đã trôi qua kể từ lần cuối khách hàng đặt hàng

query = """
SELECT 
    customer_id, 
    first_order_date, 
    last_order_date, 
    DATEDIFF(last_order_date, first_order_date) AS days_between_orders, 
    DATEDIFF(NOW(), first_order_date) AS days_since_first_order,
    DATEDIFF(NOW(), last_order_date) AS days_since_last_order
FROM customers
"""

df = pd.read_sql(query, con=engine)
df.head()

customer_idfirst_order_datelast_order_datedays_between_ordersdays_since_first_orderdays_since_last_order014646. 02010-12-20 10. 09. 002011-12-08 12. 12. 0035341453792118102. 02010-12-07 16. 42. 002011-12-09 11. 50. 0036741583791217450. 02010-12-07 09. 23. 002011-12-01 13. 29. 0035941583799314911. 02010-12-01 14. 05. 002011-12-08 15. 54. 0037241643792412415. 02011-01-06 11. 12. 002011-11-15 14. 22. 0031341283815

Làm cách nào để tính chênh lệch giữa 2 ngày trong SQL?

Hàm DATEDIFF() trả về chênh lệch giữa hai ngày.

Làm cách nào để tính ngày giữa hai ngày trong MySQL?

Hàm DATEDIFF() trả về số ngày giữa hai giá trị ngày.

Làm cách nào để trừ trong MySQL?

MySQL TRỪ .
CHỌN select_list1 TỪ tên_bảng1 TRỪ CHỌN select_list2 TỪ tên_bảng2;
TẠO BẢNG t1 ( id INT PRIMARY KEY );
CHỌN id TỪ t1 TRỪ CHỌN id TỪ t2;

Dateiff có hoạt động trong MySQL không?

Hàm DATEDIFF() trong MySQL được sử dụng để trả về số ngày giữa hai giá trị ngày được chỉ định . Tham số. Chức năng này chấp nhận hai tham số như đưa ra dưới đây. ngày1. Ngày được chỉ định đầu tiên. ngày2. Ngày xác định thứ hai.