Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak znaleźć liczbę dni między dwiema datami w MySQL?

Problem:

Chcesz poznać różnicę w dniach między dwiema datami w bazie danych MySQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie food z danymi w kolumnach id , name , purchase_date i expiration_date .

id imię data_zakupu data_ważności
1 chleb 2019-07-20 2019-08-22
2 masło 2018-07-30 2019-08-10
3 mleko 2019-01-12 2019-01-13
4 jogurt 25.02.2019 2019-02-24

Dla każdego produktu spożywczego zdobądźmy nazwę produktu i liczbę dni między datą jego ważności a datą zakupu.

Rozwiązanie:

Użyjemy DATEDIFF() funkcjonować. Oto zapytanie, które możesz napisać:

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

Oto wynik zapytania:

nazwa dni
chleb 33
masło 376
mleko 1
jogurt -1

Dyskusja:

Użyj DATEDIFF() funkcja do pobierania liczby dni między dwiema datami w bazie danych MySQL. Ta funkcja przyjmuje dwa argumenty:

  1. Data zakończenia. (W naszym przykładzie jest to expiration_date kolumna.)
  2. Data rozpoczęcia. (W naszym przykładzie jest to purchase_date kolumna.)

Te argumenty mogą być wartościami daty/daty/godziny, wyrażeniami zwracającymi wartości daty/daty/godziny lub kolumnami typu data/godzina lub data.

Ta funkcja odejmuje datę początkową od daty końcowej i zwraca liczbę dni jako liczbę całkowitą. W naszym przykładzie masło został zakupiony w dniu „2018-07-30”, ale jego data ważności to „2019-08-10”; po zakupie można go było spożywać przez 376 dni. Zauważ, że jogurt został zakupiony jako przestarzały produkt:różnica w dniach wynosi -1, a data zakupu jest późniejsza niż data ważności.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zoptymalizować funkcję ORDER BY RAND() MySQL?

  2. Błąd MySql:1364 Pole 'display_name' nie ma wartości domyślnej

  3. Jak ograniczyć wiersze w zestawie wyników MySQL

  4. Ogłoszenie MySQL 5.6 EOL

  5. Nie znaleziono dostawcy Entity Framework dla dostawcy ADO.NET "MySql.Data.MySqlClient"