MySQL - Grabar DATETIME en cero

 
Vista:
Imágen de perfil de Felix
Val: 17
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Grabar DATETIME en cero

Publicado por Felix (8 intervenciones) el 22/10/2018 01:32:17
Saludos!

Mi problema ahora es que tengo que guardar un registro en un DATETIME pero debe estar en cero.

Mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO personas
		(nombre,
		password,
		mail,
		ucomida,
		utrabajo,
		upulso)
		VALUES
		('$nombre',
		'$hash',
		'$_REQUEST[mail]',
		now(),
		now(),
		now())

El problema está en que "utrabajo" debe estar en 0000-00-00 00:00:00 pero lo logro hacerlo.

Una vez más gracias de antemano a quien pueda ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Grabar DATETIME en cero

Publicado por leonardo_josue (414 intervenciones) el 22/10/2018 15:54:03
Hola Felix:

Te recomendaría que en lugar de almacenar una fecha con CEROS, manejes mejor una fecha NULL, pero bueno, esto es cuestión de gustos. Para hacer lo que quieres lo puedes hacer de dos formas: mandar como tal la fecha '0000-00-00 00:00:00' o mandar simplemente un 0.

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> INSERT INTO tabla VALUES (1, NULL), (2, '0000-00-00 00:00:00'), (3, 0);
Query OK, 3 rows affected (0.11 sec)
Records: 3  Duplicates: 0  Warnings: 0
 
mysql> select * from tabla;
+------+---------------------+
| id   | campo               |
+------+---------------------+
|    1 | NULL                |
|    2 | 0000-00-00 00:00:00 |
|    3 | 0000-00-00 00:00:00 |
+------+---------------------+
3 rows in set (0.00 sec)

O si lo prefieres, puedes poner los campos con un valor default, para que no tengas que enviarlos en el INSERT:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> CREATE TABLE tabla (
    ->   id int,
    ->   campo1 DATETIME DEFAULT '0000-00-00 00:00:00',
    ->   campo2 DATETIME DEFAULT 0
    -> );
Query OK, 0 rows affected (0.30 sec)
 
mysql> INSERT INTO tabla (id) values (1), (2);
Query OK, 2 rows affected (0.10 sec)
Records: 2  Duplicates: 0  Warnings: 0
 
mysql> SELECT
    -> * FROM tabla;
+------+---------------------+---------------------+
| id   | campo1              | campo2              |
+------+---------------------+---------------------+
|    1 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
|    2 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
+------+---------------------+---------------------+
2 rows in set (0.00 sec)

Haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar