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

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

В SQLite можем да използваме DATE() функция за добавяне на един или повече месеца към дата.

Когато имаме работа със стойности за дата и час, можем да използваме DATETIME() функция.

Пример

Ето пример, който използва DATE() функция:

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

Резултат:

2050-09-21

Ако искаме да извадим сумата, бихме могли да заменим + с - .

Също така, пропускане на + част води до добавяне на сумата, сякаш сме използвали + :

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

Резултат:

2050-09-21

Можем да посочим месеците в множествено или немножествено число. С други думи, month е еквивалентен на months :

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

Резултат:

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

Посочено в дни

Алтернативно можем да добавим месец или повече към датата въз основа на брой дни:

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

Резултат:

2050-09-21

Въпреки това, имайте предвид, че това ще изисква да знаете точно колко дни са подходящи за съответните месеци. Някои месеци имат 30 дни, други 31, а февруари 28 или 29, в зависимост от това дали е високосна година или не.

С month /months модификатор, SQLite нормализира датата въз основа на броя на дните в съответния месец/и.

Ето сравнение на месеци с дни при добавяне към дата през март:

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";

Резултат:

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

И ето същото сравнение при добавяне към дата през септември:

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";

Резултат:

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

DATETIME() Функция

Ето пример, който демонстрира как да използвате DATETIME() функция за добавяне на месец към стойност за дата и час:

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

Резултат:

2050-09-21 00:00:00

В този случай предадох стойност за дата, но функцията върна стойност за дата и час.

Ето още един пример, този път със стойност за дата и час:

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

Резултат:

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. Как да получите вчерашна дата в SQLite

  2. Как да създадете празна база данни SQLite

  3. <expr> очаквано, разбрахте ли '?'

  4. 5 начина да проверите типа данни на колона в SQLite

  5. Вмъкнете времеви печат в базата данни чрез ContentValues