Timestamp vs datetime

Bonjour à tous,

J’utilise souvent t.timestamps dans les migrations qui génerent des
datetime (avec mysql).

Aujourd’hui, j’aimerais vous demander les avantages/inconvénients
d’utiliser des “datetime” plutôt que des “timestamp”.

J’ai l’impression que “timestamp” est plus rapide, mais limité dans le
temps (jusqu’en 2040).

Qu’en pensez-vous ? Qu’utilisez-vous dans vos applications ?

Merci par avance pour vos retours,

Pierre

Merci Fabien pour toutes ces précisions.
FriendFeed utilise des timestamp
http://bret.appspot.com/entry/how-friendfeed-uses-mysql

2009/7/3 Pierre V. [email protected]

temps (jusqu’en 2040).

Qu’en pensez-vous ? Qu’utilisez-vous dans vos applications ?

Merci par avance pour vos retours,

concernant mysql, datetime est stocké en 8 octets (4 pour la date, 4
pour l’heure) alors que le timestamp est stocké sur 4 octets
représentant le nombre de secondes depuis 1970-01-01 00:00:00.

Donc forcemment :

  • le timestamp est plus limité : 2038-01-09 03:14:07 comme valeur max
  • le stockage est moins important en timestamp, tant pour les données
    que les index en dépendant
  • la vitesse de ‘traitement’ doit être moins élevée en datetime qu’en
    timestamp vu la quantité de données à comparer, mais je n’ai aucun
    bench pour affirmer cela. Je me base juste sur le volume de données à
    comparer.

Pour postgresql, datetime n’existe plus dans la dernière version
stable. Mais le stockage des timestamp est fait sur 8 octets ce qui
augmente considérablement la limite comparé a mysql.

Pour la partie instanciation ruby, aucune différence vu que les 2
types renvoient la même chose. On passe alors par le même code que ce
soit un champ datetime ou un timestamp.


http://fabien.jakimowicz.com