Làm cách nào để trừ ngày khỏi DateTime?

Sau khi đọc bài viết này, bạn sẽ học cách tìm sự khác biệt giữa hai ngày trong Python. Ngoài ra, chúng ta sẽ xem cách tính số ngày giữa hai đối tượng ngày và giờ

Mục lục

Cách tính chênh lệch giữa hai ngày theo ngày

Ngày có thể ở bất kỳ dạng nào, chẳng hạn như chuỗi, đối tượng ngày hoặc đối tượng ngày giờ. chúng ta sẽ xem ví dụ về tất cả các trường hợp

Python cung cấp mô-đun datetime để tạo và thao tác ngày và giờ. Các bước dưới đây cho thấy cách sử dụng mô-đun datetime để tính toán sự khác biệt giữa hai ngày theo ngày

  1. Nhập mô-đun ngày giờ

    Mô-đun datetime trong Python cung cấp nhiều chức năng khác nhau để tạo và thao tác ngày và giờ. Sử dụng câu lệnh from datetime import datetime để nhập lớp datetime từ mô-đun ngày giờ

  2. Chuyển đổi chuỗi ngày thành đối tượng datetime

    Có thể có trường hợp ngày ở định dạng chuỗi. Trước khi tính chênh lệch ngày, chúng ta cần chuyển đổi cả hai chuỗi ngày thành đối tượng datetime
    Sử dụng hàm

    Difference is 123 days
    0 để chuyển đổi chuỗi ngày thành đối tượng ngày giờ theo
    Difference is 123 days
    1 tương ứng
    Các mã định dạng là các chỉ thị tiêu chuẩn để đề cập đến định dạng của chuỗi để phân tích cú pháp. Ví dụ: mã định dạng
    Difference is 123 days
    2 dành cho
    Difference is 123 days
    3

  3. Trừ date2 từ date1

    Để có được sự khác biệt giữa hai ngày, hãy trừ date2 từ date1. Kết quả là một đối tượng timedelta. Timedelta đại diện cho một khoảng thời gian là sự khác biệt giữa hai trường hợp ngày, giờ hoặc ngày giờ, đối với độ phân giải micro giây

  4. Nhận chênh lệch theo ngày

    Để lấy số ngày giữa hai ngày, hãy sử dụng thuộc tính

    Difference is 123 days
    4

  5. Nhận sự khác biệt trong vài giây

    Để có kết quả sau vài giây, hãy sử dụng thuộc tính

    Difference is 123 days
    5

Thí dụ. Ngày giữa hai ngày

from datetime import datetime

# dates in string format
str_d1 = '2021/10/20'
str_d2 = '2022/2/20'

# convert string to date object
d1 = datetime.strptime[str_d1, "%Y/%m/%d"]
d2 = datetime.strptime[str_d2, "%Y/%m/%d"]

# difference between dates in timedelta
delta = d2 - d1
print[f'Difference is {delta.days} days']

đầu ra

Difference is 123 days

Mã ngắn

________số 8_______

Cũng thấy

  • Sự khác biệt giữa hai ngày trong tháng
  • Chênh lệch thời gian giữa hai lần trong Python
  • Tính ngày làm việc giữa hai ngày trong Python

Sự khác biệt giữa hai đối tượng
Difference is 123 days
6

Có những trường hợp bạn nhận được ngày tháng trong một đối tượng

Difference is 123 days
6 thay vì một chuỗi. Trong những trường hợp như vậy, bạn có thể tính toán trực tiếp sự khác biệt giữa chúng bằng cách thực hiện phép toán trừ

Thí dụ

from datetime import date

def get_difference[date1, date2]:
    delta = date2 - date1
    return delta.days

d1 = date[2021, 10, 20]
d2 = date[2022, 2, 20]
days = get_difference[d1, d2]
print[f'Difference is {days} days']

đầu ra

Difference is 123 days

Sự khác biệt giữa hai đối tượng datetime

Chúng ta cần làm việc với đối tượng datetime thay vì

Difference is 123 days
6 trong một số trường hợp. Đối tượng datetime chứa cả thông tin ngày [năm-tháng-ngày] và thời gian [giờ-phút-giây]. Hãy xem cách tính số ngày giữa hai đối tượng datetime

  • Đầu tiên, chuyển đổi chuỗi ngày giờ thành đối tượng datetime bằng cách sử dụng hàm 
    from datetime import datetime as dt
    
    res = [dt.strptime['2022/2/20', "%Y/%m/%d"] - dt.strptime['2021/10/20', "%Y/%m/%d"]].days
    1
  • Tiếp theo, tính toán sự khác biệt bằng cách trừ
    from datetime import datetime as dt
    
    res = [dt.strptime['2022/2/20', "%Y/%m/%d"] - dt.strptime['2021/10/20', "%Y/%m/%d"]].days
    2 từ
    from datetime import datetime as dt
    
    res = [dt.strptime['2022/2/20', "%Y/%m/%d"] - dt.strptime['2021/10/20', "%Y/%m/%d"]].days
    3

Thí dụ

from datetime import datetime

# datetime in string format
str_dt1 = '2021/10/20 09:15:32.36980'
str_dt2 = '2022/2/20 04:25:42.120450'

# convert string to datetime
dt1 = datetime.strptime[str_dt1, "%Y/%m/%d %H:%M:%S.%f"]
dt2 = datetime.strptime[str_dt2, "%Y/%m/%d %H:%M:%S.%f"]

# difference between datetime in timedelta
delta = dt2 - dt1
print[f'Difference is {delta.days} days']

đầu ra

Difference is 122 days

Ghi chú

Đối tượng timedelta trong Python coi 24 giờ là một ngày và Đối với các ngày theo lịch, bạn sẽ cần làm tròn xuống ngày gần nhất bằng cách xóa một phần ngày ở cả hai bên. Tôi. e. , chúng ta cần đặt giờ, phút và giây thành 0 trong cả ngày giờ

Bạn có thể trừ ngày trong SQL không?

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

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

Để lấy ngày hôm qua, bạn cần lấy ngày hôm nay trừ đi một ngày. Sử dụng GETDATE[] để lấy ngày hôm nay [kiểu là datetime ] và chuyển sang ngày. Trong SQL Server, bạn có thể trừ hoặc cộng bất kỳ số ngày nào bằng hàm DATEADD[] . Hàm DATEADD[] nhận ba đối số. datepart , số và ngày.

Chủ Đề