Comment obtenir la différence en jours entre 2 dates en SQLite ? J'ai déjà essayé quelque chose comme ceci :
SELECT Date('now') - DateCreated FROM Payment
Il renvoie 0 à chaque fois.
Comment obtenir la différence en jours entre 2 dates en SQLite ? J'ai déjà essayé quelque chose comme ceci :
SELECT Date('now') - DateCreated FROM Payment
Il renvoie 0 à chaque fois.
Juste une remarque pour l'écriture des fonctions de timeclock. Pour ceux qui recherchent les heures travaillées, il suffit de modifier cette fonction pour que les heures et les minutes soient affichées sous forme de pourcentage de 60, comme le souhaitent la plupart des sociétés de paie.
CAST ((julianday(clockOUT) - julianday(clockIN)) * 24 AS REAL) AS HoursWorked
Clock In Clock Out HoursWorked
2016-08-07 11:56 2016-08-07 18:46 6.83333332836628
Tout d'abord, le format de votre date n'est pas clair. Il existe déjà une réponse impliquant strftime("%s")
.
J'aime développer cette réponse.
SQLite ne dispose que des classes de stockage suivantes : NULL, INTEGER, REAL, TEXT ou BLOB. Pour simplifier les choses, je vais supposer que les dates sont des REAL contenant les secondes depuis le 1970-01-01. Voici un schéma type pour lequel je vais mettre les données types du "1er décembre 2018" :
CREATE TABLE Payment (DateCreated REAL);
INSERT INTO Payment VALUES (strftime("%s", "2018-12-01"));
Maintenant, calculons la différence de date entre le "1er décembre 2018" et maintenant (au moment où j'écris ces lignes, il est midi le 12 décembre 2018) :
Différence de date en jours :
SELECT (strftime("%s", "now") - DateCreated) / 86400.0 FROM Payment;
-- Output: 11.066875
Différence de date en heures :
SELECT (strftime("%s", "now") - DateCreated) / 3600.0 FROM Payment;
-- Output: 265.606388888889
Différence de date en minutes :
SELECT (strftime("%s", "now") - DateCreated) / 60.0 FROM Payment;
-- Output: 15936.4833333333
Différence de date en secondes :
SELECT (strftime("%s", "now") - DateCreated) FROM Payment;
-- Output: 956195.0
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.