Non sono venduto su questa idea, ma io sono in realtà non venduto all'idea di memorizzare le date (che non sono istanti in tempo) come un timestamp, quindi ecco il mio suggerimento.
Converti la tua data in un numero intero leggibile dall'uomo (ad esempio 2014-11-3
diventa 20141103
) e memorizza questo valore intero. Contiene esattamente i dati di cui hai bisogno, è semplice da creare e analizzare e occupa uno spazio minimo. Inoltre, è ordinato e ha un mapping one-to-one delle date ai valori validi (concessi, sono possibili numeri non validi, come 20149999
, ma questi sono facili da rilevare). Al contrario, ci sono circa 86400 timestamp validi che rappresentano ogni giorno.
NB: C'è un discussion on DBA SE che critica questo metodo di archiviazione della data, ma in quel contesto esiste un tipo di data specializzato, che ovviamente non è il caso qui.
Thx ... Ho seguito i nostri consigli e ho reso i campi Data da rappresentare come "int64" in proto file e lo convertivo in Data nella mia classe java. – Echo
Questo è quello che normalmente faccio anche io, solo per memorizzare millis da unix epoca. – Jeremy
Raccomanderesti int64 o fixed64? – ticktock