LINUX.ORG.RU

TIMESTAMP -> DATE


0

0

У меня есть таблица с колонкой, которая имеет тип TIMESTAMP. Как 
скопировать одним запросом значения из колонки TIMESTAMP в новую 
колонку типа DATE?

UPDATE `table` SET `date`=SUBSTRING(`timestamp`, 1, 10); не работает 
как надо - после её выполнения все содержимое колонки timestamp 
сбрасывается в текущее время.

mysql> select * from testtable;
+----+---------------------+------------+
| id | ts                  | dt         |
+----+---------------------+------------+
|  1 | 2006-01-01 11:11:00 | 0000-00-00 |
|  2 | 2006-05-05 22:22:00 | 0000-00-00 |
|  3 | 2007-01-01 00:00:00 | 0000-00-00 |
+----+---------------------+------------+
3 rows in set (0.00 sec)

mysql> UPDATE testtable set dt=SUBSTRING(ts, 1, 10);
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> select * from testtable;
+----+---------------------+------------+
| id | ts                  | dt         |
+----+---------------------+------------+
|  1 | 2007-03-06 16:48:38 | 2006-01-01 |
|  2 | 2007-03-06 16:48:38 | 2006-05-05 |
|  3 | 2007-03-06 16:48:38 | 2007-01-01 |
+----+---------------------+------------+
3 rows in set (0.00 sec)
★★★★★

> как надо - после её выполнения все содержимое колонки timestamp сбрасывается в текущее время.

так и должно быть, timestamp обновляется при обновлении строки. попробуй такой вариант: UPDATE testtable SET ts = ts, dt = ... тобишь обновить поле ts самим значением ts.

Eshkin_kot ★★
()
Ответ на: комментарий от Eshkin_kot

Спасибо, попробую.

> timestamp обновляется при обновлении строки

Что за лажа такая?

birdie ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.