Làm cách nào để trừ 1 ngày kể từ ngày trong MySQL?

Khi làm việc với dữ liệu khách hàng trong thương mại điện tử, các nhà khoa học dữ liệu thường cần cộng và trừ các giá trị ngày trực tiếp trong các truy vấn MySQL. Ví dụ: bạn có thể muốn xác định khách hàng nào đã đặt hàng gần đây đã tiếp tục thực hiện giao dịch mua khác trong 12 tháng tới

MySQL cung cấp hai hàm hữu ích để cộng và trừ các giá trị ngày và giờ khỏi các giá trị ngày giờ được lưu trữ trong MySQL -

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
1 và
df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
2. Cả hai đều làm việc theo cùng một cách

Bạn chỉ cần xác định cột mà bạn muốn cộng hoặc trừ, sau đó xác định ngày hoặc khoảng thời gian bạn muốn cộng hoặc trừ. Sau đó, MySQL sẽ trả về một ngày với số năm, tháng, tuần, giây hoặc micro giây mong muốn của bạn được thêm hoặc xóa. Dưới đây là hướng dẫn nhanh để sử dụng chúng

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

Tạo kết nối cơ sở dữ liệu

Tiếp theo, bạn sẽ cần tạo một chuỗi truy vấn PyMySQL và kết nối với máy chủ MySQL đang chạy trên bộ chứa Docker của bạn hoặc bất cứ nơi nào bạn lưu trữ cơ sở dữ liệu MySQL của mình

engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']

CHỌN TỪ một bảng SQL

Khi bạn đã định cấu hình kết nối cơ sở dữ liệu của mình, bạn có thể tạo một câu lệnh SQL

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
3 đơn giản để kiểm tra xem kết nối có hoạt động bình thường không

df = pd.read_sql["SELECT * FROM customers", 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

Để trừ ngày, tuần, tháng, quý, giờ hoặc giây từ một ngày trong MySQL, bạn có thể sử dụng hàm

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
2. Điều này sử dụng định dạng
import pandas as pd
from sqlalchemy import create_engine
0 trong đó
import pandas as pd
from sqlalchemy import create_engine
1 là một trong các giá trị ngày hoặc khoảng thời gian được phép trừ và sau đó trả về giá trị
import pandas as pd
from sqlalchemy import create_engine
2 sau phép trừ ngày. Các giá trị khoảng thời gian và ngày được phép mà bạn có thể chuyển đến
df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
2 là

  • import pandas as pd
    from sqlalchemy import create_engine
    
    4
  • import pandas as pd
    from sqlalchemy import create_engine
    
    5
  • import pandas as pd
    from sqlalchemy import create_engine
    
    6
  • import pandas as pd
    from sqlalchemy import create_engine
    
    7
  • import pandas as pd
    from sqlalchemy import create_engine
    
    8
  • import pandas as pd
    from sqlalchemy import create_engine
    
    9
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    0
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    1
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    2
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    3
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    4
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    5
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    6
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    7
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    8
  • engine = create_engine['mysql+pymysql://root:*****@172.17.0.3:3306/ecommerce']
    
    9
  • df = pd.read_sql["SELECT * FROM customers", con=engine]
    df.head[]
    
    0
  • df = pd.read_sql["SELECT * FROM customers", con=engine]
    df.head[]
    
    1
  • df = pd.read_sql["SELECT * FROM customers", con=engine]
    df.head[]
    
    2

Đây là một ví dụ về cách sử dụng hàm

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
2 trong MySQL. Để có được ngày trước một ngày, chúng ta có thể sử dụng
df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
4

Để có được cùng một ngày năm ngoái, chúng ta có thể sử dụng

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
5. Bạn có thể chỉ cần thay đổi giá trị được truyền sau
df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
6 để trừ bất kỳ giá trị ngày hoặc giờ nào bạn muốn, sau đó sử dụng
df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
7 để gán giá trị cho một cột mới trong tập kết quả MySQL

df = pd.read_sql["SELECT * FROM customers", con=engine]
df.head[]
0

customer_idfirst_order_dateday_after_first_orderthree_months_after_first_orderyear_after_first_order014646. 02010-12-20 10. 09. 002010-12-19 10. 09. 002010-09-20 10. 09. 002009-12-20 10. 09. 00118102. 02010-12-07 16. 42. 002010-12-06 16. 42. 002010-09-07 16. 42. 002009-12-07 16. 42. 00217450. 02010-12-07 09. 23. 002010-12-06 09. 23. 002010-09-07 09. 23. 002009-12-07 09. 23. 00314911. 02010-12-01 14. 05. 002010-11-30 14. 05. 002010-09-01 14. 05. 002009-12-01 14. 05. 00412415. 02011-01-06 11. 12. 002011-01-05 11. 12. 002010-10-06 11. 12. 002010-01-06 11. 12. 00

Làm cách nào để trừ 1 ngày kể từ ngày trong SQL?

Hàm DATEADD[] nhận ba đối số. datepart , số và ngày. Ở đây, giá trị của datepart là day, vì đơn vị thời gian bạn muốn trừ là ngày. Đối số thứ hai là -1 [bạn trừ 1 ngày, cũng giống như cộng -1 ngày].

Làm cách nào để trừ số ngày kể từ ngày trong MySQL?

Để đếm sự khác biệt giữa các ngày trong MySQL, hãy sử dụng hàm DATEDIFF[ngày kết thúc, ngày bắt đầu] . Sự khác biệt giữa ngày bắt đầu và ngày kết thúc được biểu thị bằng ngày.

Làm cách nào để truy vấn ngày hiện tại trừ 7 ngày trong MySQL?

Tìm hiểu MySQL từ đầu về Khoa học dữ liệu và Phân tích select *from yourTableName where DATE[yourColumnName] > [NOW[] - INTERVAL 7 DAY];

Làm cách nào để chọn ngay cộng với 1 ngày trong MySQL?

Để chỉ hiển thị ngày, thì bạn có thể sử dụng logic bên dưới cho now[]+1 ngày. Sử dụng curdate[], thay vì now[] . curdate[]+interval 1 ngày. Hoặc bạn có thể sử dụng logic trên với sự trợ giúp của hàm date_add[].

Chủ Đề