У меня есть таблица со строкой, которая выглядит следующим образом:
( 20091231 48498429, '...', '...')
Первая часть, id, является меткой времени, за которой следует случайное число. (необходимо для работы с другими частями в системе) Данные уже существуют в таблице.
Я хочу создать столбец, отметку времени и извлечь только дату (20091231) и обновить все строки с отметкой времени.
- Как я могу сделать это для всех строк с SQL? (т.е. обновить их все с помощью какой-то функции?)
- Какое значение по умолчанию мне следует присвоить столбцу, чтобы убедиться, что будущие вставки правильно извлекают дату?
ОБНОВЛЕНИЕ - Пожалуйста, прочитайте комментарии Бобинса в первом ответе на вопрос Джонатана Сэмпсона о том, как мы получили ответ. Это последний запрос, который работал:
UPDATE table SET rdate=substring(convert(rid,char(20)),1,8);
Проблема заключалась в том, что я использовал substring
в качестве substring( str, 0, 8 )
, тогда как это должно быть substring( str, 1, 8 )
. Я думаю, мы все привыкли к 0 в качестве начальной позиции! Больше информации здесь подстрока
Относится к: несколько обновлений в mysql