Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

curdate

Estas en el tema de curdate en el foro de Mysql en Foros del Web. Hola Foreros, quisiera saber porqué me da este error al añadir un campo nuevo llamado fecha de tipo date y con valor por defecto curdate. ...
  #1 (permalink)  
Antiguo 23/11/2008, 05:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 53
Antigüedad: 15 años, 5 meses
Puntos: 0
curdate

Hola Foreros,
quisiera saber porqué me da este error al añadir un campo nuevo llamado fecha de tipo date y con valor por defecto curdate. Lo estoy haciendo desde phpmyadmin. Gracias.

consulta SQL:

ALTER TABLE `pedidos` ADD `fecha` DATE NOT NULL DEFAULT 'curdate()'

MySQL ha dicho:

#1067 - Invalid default value for 'fecha'
  #2 (permalink)  
Antiguo 23/11/2008, 08:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: curdate

MySQL no admite el uso de funciones en la determinación de datos por default de una tabla.
Los datos por default deben ser constantes.
El manual dice:
Cita:
La cláusula DEFAULT especifica el valor por defecto para una columna. Con una excepción, el valor por defecto debe ser constante; no puede ser una función o una expresión. Esto significa , por ejemplo, que no puede poner como valor por defecto de una columna el valor de una función como NOW() o CURRENT_DATE. La excepción es que pude especificar CURRENT_TIMESTAMP como defecto para columnas TIMESTAMP
Si puedes usarlos cuando declaras una variable dentro de un store procedure.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/11/2008, 09:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 53
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: curdate

Muchas gracias..pero como podría hacer para que me cogiera la fecha del sistema cuando grabo un registro.
En el insert en values le pongo curdate() pero tampoco me funciona. ¿Como haría el insert?
  #4 (permalink)  
Antiguo 23/11/2008, 12:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: curdate

CURDATE() Debería funcionarte en el INSERT.
Postea la sentencia en la que lo usas, para ver en qué contexto aparece el problema.
Postea solo SQL, no pongas codigo de lenguajes de programación. En todo caso, usa valores imaginarios para verlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/11/2008, 05:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 53
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: curdate

Gracias, en el insert si que funciona, era problema de sintaxis.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:28.