SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Dodaj miesiące do daty w SQLite

W SQLite możemy użyć DATE() funkcja, aby dodać jeden lub więcej miesięcy do daty.

Kiedy mamy do czynienia z wartościami datetime, możemy użyć DATETIME() funkcja.

Przykład

Oto przykład, w którym użyto DATE() funkcja:

SELECT DATE('2050-08-21', '+1 month');

Wynik:

2050-09-21

Gdybyśmy chcieli odjąć kwotę, moglibyśmy zastąpić + z - .

Również pomijając + część powoduje dodanie kwoty, tak jakbyśmy użyli + :

SELECT DATE('2050-08-21', '1 month');

Wynik:

2050-09-21

Miesiące możemy podać w liczbie mnogiej lub innej. Innymi słowy, month jest odpowiednikiem months :

SELECT 
    DATE('2050-08-21', '+3 month') AS month,
    DATE('2050-08-21', '+3 months') AS months;

Wynik:

month       months    
----------  ----------
2050-11-21  2050-11-21

Określone w dniach

Alternatywnie możemy dodać miesiąc lub więcej do daty na podstawie liczby dni:

SELECT DATE('2050-08-21', '+31 days');

Wynik:

2050-09-21

Pamiętaj jednak, że będzie to wymagało dokładnej wiedzy, ile dni jest odpowiednich dla danych miesięcy. Niektóre miesiące mają 30 dni, inne 31, a luty 28 lub 29, w zależności od tego, czy jest to rok przestępny, czy nie.

Z month /months modyfikator, SQLite normalizuje datę w oparciu o liczbę dni w danym miesiącu/miesiącach.

Oto porównanie miesięcy i dni podczas dodawania do daty w marcu:

SELECT 
    DATE('2050-03-31', '+1 month') AS "1 month",
    DATE('2050-03-31', '+30 days') AS "30 days",
    DATE('2050-03-31', '+31 days') AS "31 days";

Wynik:

1 month     30 days     31 days   
----------  ----------  ----------
2050-05-01  2050-04-30  2050-05-01

A oto to samo porównanie przy dodawaniu do daty we wrześniu:

SELECT 
    DATE('2050-09-30', '+1 month') AS "1 month",
    DATE('2050-09-30', '+30 days') AS "30 days",
    DATE('2050-09-30', '+31 days') AS "31 days";

Wynik:

1 month     30 days     31 days   
----------  ----------  ----------
2050-10-30  2050-10-30  2050-10-31

DATETIME() Funkcja

Oto przykład, który pokazuje, jak używać DATETIME() funkcja dodawania miesiąca do wartości daty i godziny:

SELECT DATETIME('2050-08-21', '+1 month');

Wynik:

2050-09-21 00:00:00

W tym przypadku przekazałem wartość daty, ale funkcja zwróciła wartość daty i godziny.

Oto kolejny przykład, tym razem z wartością daty i godziny:

SELECT DATETIME('2050-08-21 18:30:45', '+1 month');

Wynik:

2050-09-21 18:30:45

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na wyodrębnienie wartości z dokumentu JSON w SQLite

  2. Wybierz wiele kolumn z dwóch tabel za pomocą greendao

  3. SQLite JSON_OBJECT()

  4. Problem z zapytaniem wstawiania w Sqlite? (Wstaw zmienną)

  5. Wyświetl dane SQLite w RecyclerView