MySQL - Date par défaut dans une table - Programmation
Marsh Posté le 27-08-2002 à 18:19:35
zetoune a écrit a écrit : comment on fait pour mettre par défaut la date dans la table.. en gros l'équivalent de getdate() dans SqlServeur. |
CURDATE
Marsh Posté le 27-08-2002 à 18:22:00
avec ou sans parenthese ?
comme ca ?
ALTER TABLE `MaBase`.`MaTable` CHANGE `MaDate` `DateEntered` DATETIME DEFAULT 'curdate()' not null
Marsh Posté le 27-08-2002 à 18:32:04
zetoune a écrit a écrit : avec ou sans parenthese ? comme ca ? ALTER TABLE `MaBase`.`MaTable` CHANGE `MaDate` `DateEntered` DATETIME DEFAULT 'curdate()' not null |
A ben merde ça a pas l'air de marcher ...
Désolé, je connais pas bien MySQL ...
Curdate() donne la date courante, mais je crois pas si tu met une fonction en valeur par défaut, ça marche pas, ou alors y a une autre syntax ...
Désolé.
Marsh Posté le 27-08-2002 à 22:08:40
Sous Oracle, SYSDATE est une variable (et non pas une fonction ! ) qui contient la date et l'heure courante. On peut l'utiliser comme valeur par défaut.
Mais sous MySQL... je ne suis jamais parvenu à faire la même chose.
Marsh Posté le 27-08-2002 à 22:14:14
http://www.mysql.com/doc/en/Date_a [...] ml#IDX1296
Sous MySQL :
CURDATE(), CURTIME(), NOW(), et SYSDATE() sont des fonctions
CURRENT_TIME, CURRENT_DATE et CURRENT_TIMESTAMP sont des variables. Donc on devrait pouvoir les utiliser comme valeur par défaut.
Marsh Posté le 27-08-2002 à 22:16:28
Non marche pas..
j'ai mis Now() dans ma requete... c est moins beau.. mais ca marche
Marsh Posté le 27-08-2002 à 22:25:55
ça ne marche pas... Je suis déçu...
C'est donc à la charge de l'application utilisant MySQL d'insérer la date.
C'est ce genre de fonctionnalités qui fait la différence entre les logiciels gratuits et les grosses solutions payantes.
Merde en disant ce genre de choses je vais enerver certains forumeurs Aïe patapai !
Marsh Posté le 27-08-2002 à 22:27:07
si ton champ est de type timestamp, la date de ce champ se met à jour automatiquement à chaque update/insert du record
Marsh Posté le 27-08-2002 à 22:32:28
http://www.mysql.com/doc/en/DATETIME.html
The TIMESTAMP column type provides a type that you can use to automatically mark INSERT or UPDATE operations with the current date and time. If you have multiple TIMESTAMP columns, only the first one is updated automatically.
Marsh Posté le 27-08-2002 à 22:32:48
Ok greg.. je vois .. mais apres c est a moi de formater la date comme elle sort... parfait merci.
Marsh Posté le 27-08-2002 à 23:37:22
zetoune a écrit a écrit : Ok greg.. je vois .. mais apres c est a moi de formater la date comme elle sort... parfait merci. |
ben ça, dans tous les cas
Marsh Posté le 28-08-2002 à 00:14:36
A mon avis, la requête ci-dessus est bonne, c'est juste que curdate() ne doit pas être en quotes (sinon c'est pas interprété, il essaie de mettre la string "curdate()" à la place
Du moins avec SQL Server, il ne faut pas de quotes à getdate() qui fait la même chose.
Sinon, aussi, pour des problèmes de droits assez zearb, il m'est arrivé d'être obligé de mettre "dbo." comme préfixe à la fonction getdate() avec SQL Server (dbo indique "DataBase Owner" ) mais je crois pas que MySQL gère ça du tout de la même manière.
Marsh Posté le 28-08-2002 à 00:19:34
MagicBuzz a écrit a écrit : A mon avis, la requête ci-dessus est bonne, c'est juste que curdate() ne doit pas être en quotes (sinon c'est pas interprété, il essaie de mettre la string "curdate()" à la place |
Effectivement, il ne faut pas mettre les quotes car sinon c'est une chaîne. Mais même sans les apostrophes ça ne marche pas.
Marsh Posté le 27-08-2002 à 18:17:45
comment on fait pour mettre par défaut la date dans la table..
en gros l'équivalent de getdate() dans SqlServeur.