SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да добавите месец към дата в SQLite

Проблем:

Бихте искали да добавите един месец към дадена дата в база данни на SQLite.

Пример:

Нашата база данни има таблица с име production с данни в колоните id , product и start_date .

id продукт начална_дата
1 бюро 17.08.2019
2 фотьойл 17.07.2019
3 диван 31.10.2019

Продуктите имат нова начална дата на производство, която е един месец по-късно от изброената по-горе. Нека получим имената на продуктите и новата им начална дата.

Ето заявката, която бихте написали:

Решение:

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

Ето резултата от заявката:

id продукт нова_начална_дата
1 бюро 17.09.2019
2 фотьойл 17.08.2019
3 диван 01.12.2019

Дискусия:

Използвайте SQLite DATE() функция за добавяне на един месец към дадена дата (или дата и час). Необходимите аргументи включват датата/датата и часа за промяна и един или повече модификатори със стойности, които показват колко към добавяне или изваждане на единици.

Първият аргумент може да бъде израз, връщащ стойност за дата/дата и час или колона дата/дата и час. В нашия пример това е колоната start_date .

Модификаторите показват каква (и колко) времева единица да се добави/извади. В нашия пример използваме модификатора „+1 месеца ’. Модификаторът започва с плюс или минус, което показва събиране или изваждане. След това има стойност (напр. 1) и единица (напр. месеци , години , дни и др.) Ако напишете „-2 дни “, изваждате 2 дни от дадена дата.

Важно: Някои модификатори изискват малко по-различен синтаксис от показания по-горе. Например „делник ’ модификаторът идва преди стойността (т.е. DATE(start_date,'weekday 3') ). Други модификатори не приемат стойности, като „начало на месеца ’, който показва първия ден от месеца за дадена дата (т.е. DATE(start_date,' start of month') ). Можете да намерите точна информация за модификаторите на дата и час в документацията на SQLite.

Нарекохме новата колона, съдържаща актуализираната начална дата new_start_date . Новата начална дата на производство за бюро е 2019-09-17 , един месец по-късно от първоначалната дата на 2019-08-17 . Обърнете внимание, че за 2019-10-31 , новата дата е 2019-12-01; това е така, защото ноември има 30 дни, а не 31.


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете таблица с помощта на sqlite база данни в android?

  2. Необходима ли е точка и запетая в SQL?

  3. Как да попълните ListView с db в папката с активи?

  4. Android – Курсор onMapReady (Маркери)

  5. SQLiteOpenHelper:методът onCreate() не е извикан на физическо устройство