0

嗨,我是一个新的编码员,搞砸了我的 sql 表。我没有用时间戳存储我的日期,而是将日期放在三个单独的列中:日、月和年。我现在意识到我需要这些时间戳。所以我可以执行更复杂的查询。

这是我需要 UPDATE 的样子:

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

先感谢您

4

1 回答 1

1

假设您的列名为 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_FORMATMySQL 手册的部分中找到。

于 2018-11-24T00:49:21.800 回答