Le type TIMESTAMP est prévu pour stocker
          automatiquement l'heure courante lors d'une commande
          INSERT ou UPDATE. Si
          vous avez plusieurs colonnes de type
          TIMESTAMP, seule la première colonne sera
          mise à jour automatiquement.
        
          La modification automatique de la première colonne de type
          TIMESTAMP survient si l'une des conditions
          suivantes est remplie :
        
              Vous insérez explicitement la valeur
              NULL dans la colonne.
            
              La colonne n'est pas spécifiée explicitement dans la
              commande INSERT ou LOAD DATA
              INFILE.
            
              La colonne n'est pas spécifiée explicitement dans la
              commande UPDATE et d'autres colonnes
              changent de valeurs (Notez qu'une commande
              UPDATE qui affecte une valeur qui est
              déjà celle de la colonne sera ignorée, et la colonne
              TIMESTAMP ne sera pas modifiée, car la
              ligne n'est pas à proprement parlée modifiée. MySQL
              ignore alors ces modifications pour des raisons
              d'efficacité).
            
          Les autres colonnes de type TIMESTAMP,
          hormis la première, peuvent aussi prendre la valeur courante.
          Affectez-lui alors la valeur NULL ou la
          fonction NOW().
        
          Vous pouvez affecter à n'importe quelle colonne de type
          TIMESTAMP une valeur différente de l'heure
          et la date courant en fournissant une valeur explicite. Cela
          s'applique aussi à la première colonne de type
          TIMESTAMP. Par exemple, si vous voulez
          affecter la date de création d'une ligne à une colonne de
          type TIMESTAMP, mais ne plus y toucher
          ultérieurement :
        
Laissez MySQL donner la valeur de la colonne lors de la création de la ligne. Cela va initialiser la colonne à la date et heure courante.
              Lorsque vous faites des modifications ultérieures,
              affectez explicitement à la colonne
              TIMESTAMP sa propre valeur.
            
UPDATE tbl_name
    SET timestamp_col = timestamp_col,
        other_col1 = new_value1,
        other_col2 = new_value2, ...
          D'un autre coté, vous pouvez aussi facilement initialiser la
          colonne TIMESTAMP avec
          NOW() lors de sa création, puis ne plus la
          modifier ultérieurement.
        
          L'intervalle de validité des valeurs
          TIMESTAMP va du début de l'année 1970
          jusque quelque part durant l'année 2037, avec une précision
          d'une seconde. Les valeurs sont affichés comme des nombres
          entiers.
        
          Le format d'affichage des valeurs TIMESTAMP
          dépend de la taille d'affichage, comme illustré ci-dessous.
          Le format total TIMESTAMP a 14 chiffres,
          mais les colonnes TIMESTAMP peuvent être
          créées avec des formats plus courts :
        
| Type de colonne | Format d'affichage | 
| TIMESTAMP(14) | YYYYMMDDHHMMSS | 
| TIMESTAMP(12) | YYMMDDHHMMSS | 
| TIMESTAMP(10) | YYMMDDHHMM | 
| TIMESTAMP(8) | YYYYMMDD | 
| TIMESTAMP(6) | YYMMDD | 
| TIMESTAMP(4) | YYMM | 
| TIMESTAMP(2) | YY | 
          Toutes les colonnes de type TIMESTAMP ont
          la même taille de stockage, indépendamment de la taille
          d'affichage. Les formats les plus courants sont 6, 8, 12, et
          14. Vous pouvez spécifier une taille arbitraire lors de la
          création de la table, mais 0 et les valeurs supérieures à
          14 sont ramenées à 14. Les valeurs impaires sont aussi
          ramenées au nombre pair supérieur.
        
          Les colonnes TIMESTAMP stockent une date
          valide, en utilisant la totalité de l'espace de stockage,
          quelque soit la valeur de l'affichage. Cela a les implication
          suivantes :
        
              Spécifiez toujours l'année, le mois et le jour, même si
              le type de colonne est TIMESTAMP(4) ou
              TIMESTAMP(2). Sinon, la valeur ne sera
              pas légale et 0 sera stockée.
            
              Si vous utilisez la commande ALTER
              TABLE pour réduire la largeur d'une colonne
              TIMESTAMP, les informations qui
              étaient affichées sont désormais ``cachées'', mais pas
              détruites.
            
              Similairement, réduire une colonne de type
              TIMESTAMP ne cause aucune perte
              d'information, en dehors du fait que ces informations ne
              sont plus affichées.
            
              Bien que les valeurs TIMESTAMP soient
              stockées avec une précision d'une seconde, la seule
              fonction qui travaille directement avec ces valeurs est la
              fonction UNIX_TIMESTAMP(). Les autres
              fonctions opèrent sur des valeurs lues et formatées.
              Cela signifie que vous ne pouvez pas utiliser de fonctions
              telles que HOUR() ou
              SECOND() a moins que le format
              d'affichage de la valeur TIMESTAMP ne
              présente cette valeur. Par exemple, les heures ne sont
              jamais affichées dans une colonne de type
              TIMESTAMP à moins que la taille
              d'affichage de la colonne ne soit d'au moins 10.
              L'utilisation de la fonction HOUR() sur
              une valeur ayant un format d'affichage plus court que
              10 retournera un résultat
              inutilisable.
            
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

