Erreur #1067 - Erreur de timestamp

Eléphanteau du PHP | 29 Messages

24 mai 2005, 12:34

Bonjour en voulant exporter ma base locale (sous win32, mysql4) vers uen base mysql4.6 j'ai el pb suivant sur les timestamp de toutes les tables :

Code : Tout sélectionner

CREATE TABLE IF NOT EXISTS entreprise( id_entreprise int( 10 ) unsigned NOT NULL AUTO_INCREMENT , raison_sociale varchar( 100 ) default NULL , fk_type_entreprise int( 10 ) unsigned NOT NULL default '0', fk_type_partenariat int( 10 ) unsigned NOT NULL default '0', fk_etat_commercial_entreprise int( 10 ) unsigned NOT NULL default '0', adresse varchar( 255 ) default NULL , code_postal varchar( 20 ) default NULL , fk_ville int( 10 ) unsigned NOT NULL default '0', tel_standard varchar( 50 ) default NULL , fax_standard varchar( 50 ) default NULL , site_web varchar( 255 ) default NULL , fk_commercial int( 10 ) unsigned NOT NULL default '0', commentaire text, logo_url varchar( 255 ) default NULL , presentation text, valorisation text, projet text, demarche text, login varchar( 50 ) default NULL , pwd varchar( 10 ) default NULL , service_reclamation varchar( 255 ) default NULL , debut_contrat_reclamation timestamp NOT NULL default '0000-00-00 00:00:00', fin_contrat_reclamation timestamp NOT NULL default '0000-00-00 00:00:00', type_nb_employe_entreprise int( 10 ) unsigned default NULL , PRIMARY KEY ( id_entreprise ) ) TYPE = MYISAM MySQL a répondu:Documentation #1067 - Invalid default value for 'debut_contrat_reclamation'
Je ne vois pas ce qui peut clocher surtout que apparement.. c'est sur tout les timestamp que ça accroche.... ça m'embeterait vraiment de rechanger mes timestamp en int....

Code : Tout sélectionner

Pour ex .. la portion ici (avec default à partir du 01/01/1970. ne marche pas non plus . `debut_contrat_reclamation` timestamp NOT NULL default '1970-01-01 12:00:00', `fin_contrat_reclamation` timestamp NOT NULL default '1970-01-01 12:00:00',
Merci poru ceux qui prendrotn le temps de me répondre...

Mammouth du PHP | 19672 Messages

24 mai 2005, 12:40

Salut,
le format des données par défaut que tu as mis est du type DATETIME et non TIMESTAMP, donc MySQL te jette normalement: ne mets pas de valeur par défaut ou alors change le type en DATETIME si tu veux absolument garder ce format de données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 29 Messages

24 mai 2005, 12:58

Merci Cyrano,

effectivement. cela a réglé mon problème (remplacé datetime) partout où j'avais du timestamp.

Mon pb venait de dbdesigner que j'utilise poru modéliser et synchorniser ma base...

Timestamp il est dit .

Code : Tout sélectionner

A timestamp. The range is '1970-01-01 00:00:00' to sometime in the year 2037. The length can be 14 (or missing), 12, 10, 8, 6, 4, or 2 representing YYYYMMDDHHMMSS, ... , YYYYMMDD, ... , YY formats.
Sauf que quand il crée le champ il mets bien un datetime au format 0000-00-00 00:00.....

Pour utiliser un vrai timestamp (nb de secondes ecoulés depuis le 1er janvier 1970) j'utilise un int 11. ma méthode est -elle bonne ? car je ne vois pas quel format utiliser (le timestamp apparement mets en forme la date : ex : 20050101154555 pour 01/01/2005 15:54:55...

Voilà. merci. encore. ;)

Mammouth du PHP | 19672 Messages

24 mai 2005, 13:11

Sous toutes réserves, fais attention au format timestamp: le timestamp MySQL et celui de PHP ne sont pas les mêmes, donc à utiliser avec prudence.

Dis-toi que de toutes façons, il y a deux cauchemards pour les informaticiens en général : les dates et les imprimantes (dixit un formateur que j'ai eu l'an dernier) :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 29 Messages

24 mai 2005, 13:16

Oui il est vrai que c'est souvent un beau bordel ces dates....

A titre perso je n'utilise presqeu jamais de datetime ou timestamp mysql mais prefère utiliser un timestamp UNIX(?) par ex : 1176799909 nb de secondes.. la conversion est facile sous php...

voilà
merci encore..

Pierre

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 13:29

Dis-toi que de toutes façons, il y a deux cauchemards pour les informaticiens en général : les dates et les imprimantes (dixit un formateur que j'ai eu l'an dernier) :langue:
Noooooooon :shock: pas les imprimantes !!!!

J'ai passé 3 jours à coder mon flux avec cette :tir2: d'imprimante il y a quelques mois
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

24 mai 2005, 13:40

...J'ai passé 3 jours à coder mon flux avec cette :tir2: d'imprimante il y a quelques mois
Seulement trois jours ? tu étais en super forme dis-moi :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: