Je travaille sur un backend golang exécuté sur Google App Engine. J'ai une entité appelée Recruit
qui possède une propriétéComment filtrer par date/heure dans le magasin de données Google App Engine en utilisant GoLang
UpdatedAt time.Time `datastore:"updated_at"`
Je voudrais interroger Recrues par leur temps mis à jour. Mon premier instinct est d'utiliser un filter.
query = datastore.NewQuery("Recruit").Filter("updated_at <=", updatedAt)
où updatedAt est une chaîne. J'ai essayé les formes 2014-08-28 01:53:19
et 2014-08-28T01:53:19.00618Z
(Le premier est la forme la propriété time.time prend dans le magasin de données, tandis que le second est la façon dont il se propage dans JSON.)
Quand j'appelle la requête avec <=
, tous Recrue les objets sont retournés. Lors de l'appel avec >=
, null est renvoyé. Je suis sûr que je suis en train de tester avec un temps au milieu de l'ensemble de données.
Quand je test sur console.developers.google.com, les filtres de la console soutiennent a date and time
after/before
, mais en essayant de remplacer <=
avec after
résultats dans une erreur.
Est-ce que quelqu'un a réussi à filtrer les requêtes par date ou heure?
Vous pouvez également trouver le temps.Parse pratique dans cette situation. Voici une bonne réponse SO montrant son utilisation: http://stackoverflow.com/questions/14106541/go-parsing-date-time-strings-which-are-not-standard-formats –
Cela a fonctionné! J'ai commencé à stocker le temps comme un int, juste comme un travail autour, mais c'est beaucoup mieux. Devrait avoir prévu que le paramètre de filtre doit être du même type. @JoeBergevin, j'ai utilisé l'analyse. Travaillé comme un charme. – selljamhere