Как преобразовать строку (в трех отдельных столбцах) в метку времени (один столбец) MYSQL - PullRequest
0 голосов
/ 24 ноября 2018

Привет, я новый кодер и запутался в моей таблице sql.Вместо того, чтобы хранить дату с отметкой времени, я сделал дату в трех отдельных столбцах: день, месяц и год.Теперь я понял, что мне нужно это в метке времени.Поэтому я могу выполнять более сложные запросы.

Вот то, что мне нужно, чтобы ОБНОВЛЕНИЕ было похоже на:

UPDATE coding_tracker SET coded_at = column(day)"/"column(month_number(month))"/"column(year);

Заранее спасибо

1 Ответ

0 голосов
/ 24 ноября 2018

Предполагая, что ваши столбцы называются day, month_number и year, этот запрос должен работать:

UPDATE coding_tracker SET coded_at = STR_TO_DATE(CONCAT_WS('/', day, month_number, year), '%d/%m/%Y')

В случае, если ваш month столбец является именем, вы можете изменить %m в приведенном вышезапрос к %b для коротких названий месяцев (Jan..Dec) или %M для длинных названий месяцев (January..December), например, для длинных имен:

UPDATE coding_tracker SET coded_at = STR_TO_DATE(CONCAT_WS('/', day, month, year), '%d/%M/%Y')

Документация о форматах для STR_TO_DATE можно найти в разделе DATE_FORMAT руководства MySQL.

...