2009-12-07 9 views

Répondre

2

Je sais que ce post est quelque peu dépassée, mais je suis annonce pour ceux qui de toute façon pourraient avoir un problème similaire comme je l'ai fait. Je recevais une date d'une API ouverte comme "2013-01-01T01: 00: 00 + 0000" et le stocker comme une chaîne dans sqlite. Le problème est survenu lorsque j'avais besoin d'un moyen d'interroger les enregistrements en fonction de la plage de dates. Comme je n'étais pas capable d'utiliser STR_TO_DATE(), j'ai trouvé que je pouvais utiliser la fonction sqlite strftime(). Voici un exemple d'une requête de travail que je me sers de cette instance, nous espérons qu'il sera en mesure d'aider quelqu'un d'autre:

select strftime(date_created) as dateCreated from tblFeeds 
where strftime(date_created) between strftime('2013-01-01') and strftime('2013-01-08') 
order by dateCreated; 

Cela m'a fait les enregistrements qui ont été créés entre 01-01-2013 et 01 -08-2013 (plage de dates: 7)

ici aussi quelques plages de dates pour vous au cas où vous ne connaissez pas les dates que vous souhaitez utiliser:

(Dernières 24 heures):

select strftime(date_created) as dateCreated from tblFeeds 
where strftime(date_created) between strftime(date('now','-24hours')) and strftime(date('now')) 
order by dateCreated 

(semaine dernière):

select strftime(date_created) as dateCreated from tblFeeds 
where strftime(date_created) between strftime(date('now','-7days')) and strftime(date('now')) 
order by dateCreated 

(mois dernier):

select strftime(date_created) as dateCreated from tblFeeds 
where strftime(date_created) between strftime(date('now','-1months')) and strftime(date('now')) 
order by dateCreated