MySQL - Date par défaut dans une table

MySQL - Date par défaut dans une table - Programmation

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.
 

Reply

Marsh Posté le 27-08-2002 à 18:17:45   

Reply

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

Reply

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

Reply

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é. :jap:

Reply

Marsh Posté le 27-08-2002 à 18:34:24    

ouais je cherche

Reply

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.

Reply

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.

Reply

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

Reply

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  :D  Aïe patapai !

Reply

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


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 27-08-2002 à 22:27:07   

Reply

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.


Message édité par airbag le 27-08-2002 à 22:32:58
Reply

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.

Reply

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


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

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.

Reply

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.

Reply

Marsh Posté le 28-08-2002 à 00:42:34    

ok :)
 
tant pis ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed