Mysql

我可以將文本從一列拆分為 My SQL 中的兩個現有列嗎

  • August 16, 2021
SELECT `Appointment`,
  SUBSTRING_INDEX(SUBSTRING_INDEX(`Appointment`, ' ', 1), ' ', -1) AS Date,
  SUBSTRING_INDEX(SUBSTRING_INDEX(`Appointment`, ' ', 2), ' ', -1) AS Time
  FROM go_applicants

它將日期和時間分開但創建了 2 個新列,是否可以將此拆分插入/更新到表中的現有列中。

這將允許我將其作為事件執行並不斷更新表格。

儲存在現有列中:

UPDATE go_applicants
SET cDate = SUBSTRING_INDEX(`Appointment`, ' ', 1),
   cTime = SUBSTRING_INDEX(SUBSTRING_INDEX(`Appointment`, ' ', 2), ' ', -1);

製作生成的列:

ALTER TABLE go_applicants
   ADD COLUMN cDate DATE AS (SUBSTRING_INDEX(`Appointment`, ' ', 1)),
   ADD COLUMN cTime TIME AS (SUBSTRING_INDEX(SUBSTRING_INDEX(`Appointment`, ' ', 2), ' ', -1));

PS。如果您將某個日期時間值的日期和時間儲存在 2 個單獨的靜態列中 - 在大多數情況下這是“不好的做法”。

引用自:https://dba.stackexchange.com/questions/298116