Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tìm số ngày giữa hai ngày trong MySQL

Vấn đề:

Bạn muốn nhận được sự khác biệt, tính bằng ngày, giữa hai ngày trong cơ sở dữ liệu MySQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng tên là food với dữ liệu trong các cột id , name , purchase_dateexpiration_date .

id tên buy_date expiration_date
1 bánh mì 2019-07-20 ngày 28 tháng 8 năm 2019
2 2018-07-30 2019-08-10
3 sữa 2019-01-12 2019-01-13
4 sữa chua 2019-02-25 2019-02-24

Đối với mỗi sản phẩm thực phẩm, hãy lấy tên của sản phẩm và số ngày từ ngày hết hạn đến ngày mua.

Giải pháp:

Chúng tôi sẽ sử dụng DATEDIFF() hàm số. Đây là truy vấn bạn sẽ viết:

SELECT
  name,
  DATEDIFF(expiration_date, purchase_date) AS days
FROM food;

Đây là kết quả của truy vấn:

name ngày
bánh mì 33
376
sữa 1
sữa chua -1

Thảo luận:

Sử dụng DATEDIFF() hàm để truy xuất số ngày giữa hai ngày trong cơ sở dữ liệu MySQL. Hàm này có hai đối số:

  1. Ngày kết thúc. (Trong ví dụ của chúng tôi, đó là expiration_date cột.)
  2. Ngày bắt đầu. (Trong ví dụ của chúng tôi, đó là purchase_date cột.)

Các đối số này có thể là giá trị ngày / giờ, biểu thức trả về giá trị ngày / giờ hoặc các cột của kiểu dữ liệu ngày hoặc giờ.

Hàm này trừ ngày bắt đầu từ ngày kết thúc và trả về số ngày dưới dạng số nguyên. Trong ví dụ của chúng tôi, đã được mua vào ‘2018-07-30’, nhưng ngày hết hạn là ‘2019-08-10’; sau khi mua, nó có thể được ăn trong 376 ngày. Lưu ý rằng sữa chua được mua là sản phẩm lỗi thời:số ngày chênh lệch là -1 và ngày mua muộn hơn ngày hết hạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách theo dõi các chỉ số HAProxy với ClusterControl

  2. Cách kết nối từ xa với cơ sở dữ liệu MySQL nằm trên máy chủ được chia sẻ của chúng tôi

  3. Vi phạm ràng buộc toàn vẹn:1452 Không thể thêm hoặc cập nhật hàng con:

  4. GROUP_CONCAT ORDER THEO

  5. Hướng dẫn thiết kế cơ sở dữ liệu cho hệ thống đặt hàng nhà hàng trong MySQL