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

SUBDATE() Przykłady – MySQL

W MySQL możesz użyć SUBDATE() funkcja odejmowania określonej ilości czasu od daty. Na przykład możesz go użyć, aby odjąć 10 dni od podanej daty. Możesz określić, czy odejmować dni, tygodnie, miesiące, kwartały, lata itp. Możesz także odjąć wartość czasu, taką jak sekundy, mikrosekundy itp.

Używając pierwszej składni wymienionej poniżej, SUBDATE() funkcja jest synonimem DATE_SUB() funkcja (podobnie jak ADDDATE() jest synonimem DATE_ADD() używając tej samej składni).

Składnia

Możesz użyć tej funkcji na dwa sposoby:

SUBDATE(date,INTERVAL expr unit)

Lub

SUBDATE(expr,days)

Przykład 1 – Pierwsza składnia

Oto przykład użycia pierwszej formy składni.

SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;

Wynik:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

W tym przykładzie odejmuje się 2 dni od daty podanej w pierwszym argumencie.

Przykład 2 – Druga składnia

Ten przykład można przepisać w następujący sposób:

SELECT SUBDATE('2018-05-10', 2) AS Result;

Wynik:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

Używa drugiej formy składni. Drugi argument to liczba całkowita reprezentująca, ile dni należy odjąć od daty podanej przez pierwszy argument.

Jak wspomniano, SUBDATE() jest synonimem DATE_SUB() , ale tylko wtedy, gdy używana jest pierwsza składnia. Druga składnia jest dostępna tylko w SUBDATE() .

Przykład 3 – Inne jednostki daty

Jedną z zalet pierwszej formy składni jest to, że możesz określić, czy odejmować dni, tygodnie, miesiące, lata itp. Oto kilka przykładów.

SELECT 
    '2018-05-10' AS 'Start Date',
    SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks',
    SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months',
    SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters',
    SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';

Wynik:

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10  | 2016-05-10 |
+------------+------------+------------+-------------+------------+

Przykład 4 – Jednostki czasu

Możesz także użyć SUBDATE() aby odjąć jednostki czasu od wartości daty/czasu. Oto przykład.

SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;

Wynik:

+---------------------+
| Result              |
+---------------------+
| 2018-05-09 23:00:00 |
+---------------------+

Oczekiwane wartości

Poniższa tabela przedstawia prawidłowe wartości jednostek i ich oczekiwany format.

unit Wartość Oczekiwano expr Format
MIKROSEKUNDA MIKROSEKUNDY
DRUGA SEKUND
MINUTA MINUT
GODZINA GODZINY
DZIEŃ DNI
TYDZIEŃ TYGODNIE
MIESIĄC MIESIĄCE
KWARTAŁ KWARTAŁ
ROK LAT
SECOND_MICROSECOND „SEKUND.MIKROSEKUNDY”
MINUTE_MICROSECOND „MINUTY:SEKUND.MIKROSEKUNDY”
MINUTE_SECOND „MINUTY:SEKUNDY”
HOUR_MICROSECOND „GODZINY:MINUTY:SEKUND.MIKROSEKUNDY”
HOUR_SECOND „GODZINY:MINUTY:SEKUNDY”
GODZINA_MINUTA „GODZINY:MINUTY”
DAY_MICROSECOND „DNI GODZINY:MINUTY:SEKUND.MIKROSEKUNDY”
DAY_SECOND „DNI GODZINY:MINUTY:SEKUNDY”
DAY_MINUTE „DNI GODZINY:MINUTY”
DAY_HOUR „DNI GODZINY”
ROK_MIESIĄC „LATA-MIESIĄCE”

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz do tabel z problemem SUM w MYSQL

  2. Korzystanie z widoków MySQL

  3. Monitorowanie wydajności MySQL za pomocą ClusterControl

  4. Oracle Database Link — odpowiednik MySQL?

  5. Grupuj według miesiąca i roku w MySQL