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 +
.