sql >> Databáze >  >> RDS >> SQLite

Jak přidat měsíc k datu v SQLite

Problém:

Chcete přidat jeden měsíc k danému datu v databázi SQLite.

Příklad:

Naše databáze obsahuje tabulku s názvem production s údaji ve sloupcích id , product a start_date .

id produkt počáteční_datum
1 stůl 2019-08-17
2 křeslo 2019-07-17
3 pohovka 2019-10-31

Produkty mají nové datum zahájení výroby, které je o měsíc později, než je uvedeno výše. Pojďme získat názvy produktů a jejich nové datum zahájení.

Zde je dotaz, který byste napsali:

Řešení:

SELECT product,
  DATE(start_date,'+1 months')
  AS new_start_date
FROM production;

Zde je výsledek dotazu:

id produkt new_start_date
1 stůl 2019-09-17
2 křeslo 2019-08-17
3 pohovka 12. 12. 2019

Diskuse:

Použijte SQLite DATE() funkce pro přidání jednoho měsíce k danému datu (nebo datu a času). Mezi požadované argumenty patří datum/datum a čas, který se má změnit, a jeden nebo více modifikátorů s hodnotami, které udávají, kolik jednotek lze přidat nebo odečíst.

První argument může být výraz vracející hodnotu datum/datum a čas nebo sloupec datum/datum a čas. V našem příkladu je to sloupec start_date .

Modifikátory udávají, jakou (a kolik) časovou jednotku přidat/odečíst. V našem příkladu používáme modifikátor ‘+1 měsíců '. Modifikátor začíná buď plusem nebo mínusem, což znamená sčítání nebo odčítání. Potom je zde hodnota (např. 1) a jednotka (např. měsíce , roky , dny , atd.) Pokud napíšete ‚-2 dny “, odečtete 2 dny od daného data.

Důležité: Některé modifikátory vyžadují mírně odlišnou syntaxi, než je uvedeno výše. Například „den v týdnu Modifikátor ’ je před hodnotou (tj. DATE(start_date,'weekday 3') ). Ostatní modifikátory nemají žádnou hodnotu, například „začátek měsíce ’, který zobrazuje první den v měsíci pro dané datum (tj. DATE(start_date,' start of month') ). Přesné informace o modifikátorech data a času najdete v dokumentaci SQLite.

Nový sloupec obsahující aktualizované datum zahájení jsme pojmenovali new_start_date . Nové datum zahájení výroby pro pracovní stůl je 2019-09-17 , o měsíc později než původní datum 2019-08-17 . Všimněte si, že pro 2019-10-31 , nové datum je 2019-12-01; je to proto, že listopad má 30 dní, nikoli 31.


  1. Občasné selhání připojení ODBC

  2. GreenDAO podporuje více vztahů mezi tabulkami

  3. odstranit databázi sqlite při aktualizaci nové verze aplikace

  4. Zkontrolujte, zda v poli Postgres existuje NULL