如何将字符串(在三个单独的列中)转换为时间戳(一列)MYSQL

How to convert a string (in three separate columns) to a timestamp(one column) MYSQL

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

这是我需要更新的样子:

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

提前致谢

假设您的列名为日、month_number 和年,此查询应该有效:

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')

有关 MySQL 手册 STR_TO_DATE can be found in the DATE_FORMAT 部分的格式的文档。