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:
- Data zakończenia. (W naszym przykładzie jest to
expiration_datekolumna.) - Data rozpoczęcia. (W naszym przykładzie jest to
purchase_datekolumna.)
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.