[英]MySQL calculated expression from other fields
我有一個包含以下字段的表
EventDay EventMonth EventYear
和 clcEventDate
我希望使用這個自動填充 clcEventDate
事件日/事件月/事件年
我嘗試將以下內容寫為 clcEventDate 的默認/表達式:EventDay + "/" + EventMonth + "/" + EventYear
但該字段只顯示為空白
做我想要完成的事情的正確方法是什么
更新*
所以使用 MySQL 的方法是使用 Before Insert 觸發器
DELIMITER #
CREATE TRIGGER clcEventDate_FilesMain
BEFORE INSERT ON FilesMain
FOR EACH ROW
BEGIN
SET NEW.clcEventDate = CONCAT(NEW.EventDay,'/', NEW.EventMonth,'/',NEW.EventYear);
END;
#
DELIMITER ;
所以現在我有一個不同的問題:例如,如果 EventMonth 的值是 8 但是當連接字符串時我希望該值是兩位數所以 8 變成 08 但 10 保持 10. . . 如何做到這一點,所以最終結果將是例如 02/08/2020,盡管 EventDay 的值為 2,EventMonth 的值為 8
謝謝
你用的是什么mysql版本? 您可以使用生成的列而不是觸發器:
ALTER TABLE FilesMain ADD COLUMN clcEventDate VARCHAR(255) GENERATED ALWAYS AS (CONCAT(LPAD(NEW.EventDay, 2, "0"),'/', LPAD(NEW.EventMonth, 2, "0"),'/',NEW.EventYear)) STORED;
如果您堅持使用觸發器,請記住還有一個 BEFORE UPDATE 觸發器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.