簡體   English   中英

MySQL 從其他字段計算表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM