SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite DATEADD() Equivalente


SQLite não tem um DATEADD() função como SQL Server (ou um ADDDATE() ou ADD_DATE() funciona como em alguns outros DBMSs), mas tem o DATE() função que pode fazer adições a um valor de data.

SQLite também tem um DATETIME() função que pode fazer adições a um valor de data e hora (assim como um TIME() função para valores de tempo).

Exemplo


Aqui está um exemplo para demonstrar como DATE() do SQLite A função pode ser usada para adicionar dez dias a uma data:
SELECT DATE('2050-08-21', '+10 days');

Resultado:
2050-08-31

E podemos adicionar meses da mesma forma:
SELECT DATE('2050-08-21', '+1 month');

Resultado:
2050-09-21

E é o mesmo com os anos:
SELECT DATE('2050-08-21', '+1 year');

Resultado:
2051-08-21

Observe que o intervalo pode ser especificado em sua forma plural ou não plural. Portanto, o seguinte produz os mesmos resultados do exemplo anterior:
SELECT DATE('2050-08-21', '+1 years');

Resultado:
2051-08-21

Horas, minutos e segundos


O DATETIME() A função nos permite adicionar horas, minutos e segundos a um determinado valor de data e hora:
SELECT 
    DATETIME('2050-08-21 00:00:00.000', '+1 hour') AS "Hours",
    DATETIME('2050-08-21 00:00:00.000', '+1 minute') AS "Minutes",
    DATETIME('2050-08-21 00:00:00.000', '+1 second') AS "Seconds";

Resultado:
Hours                Minutes              Seconds            
-------------------  -------------------  -------------------
2050-08-21 01:00:00  2050-08-21 00:01:00  2050-08-21 00:00:01

E para valores de tempo, aqui está o TIME() função:
SELECT 
    TIME('00:00:00.000', '+1 hour') AS "Hours",
    TIME('00:00:00.000', '+1 minute') AS "Minutes",
    TIME('00:00:00.000', '+1 second') AS "Seconds";

Resultado:
Hours     Minutes   Seconds 
--------  --------  --------
01:00:00  00:01:00  00:00:01

Subtrair das datas


Também podemos usar DATE() para subtrair:
SELECT DATE('2050-08-21', '-10 days');

Resultado:
2050-08-11

Tudo o que fazemos é usar o - assine o segundo argumento em vez de + .