0
我有一個網站,我可以更新一個行的日期,通過點擊表格,當我更改值並按下輸入其更新的數據庫。更新前的MySQL觸發器 - 從字符串中設置dateformat
我想要什麼:在日期字段中。只需鍵入mm/dd(例如05-20)按回車即可。
那麼我的觸發器應:
CREATE TRIGGER before_transactions_update
BEFORE UPDATE
ON Transactions FOR EACH ROW
BEGIN
-- variable declarations
declare inputDate integer;
-- trigger code
-- get month and day
-- LEFT(inputDate, 2); RIGHT(inputDate, 2)
-- STR_TO_DATE('2015,MONTH(LEFT),DAY(RIGHT)','%Y,%m,%d');
SET INSERTED.date = 2015-month-day-00-00-00;
END;
這就是我「嘗試」,或者至少就我來了我自己。 MySQL的工作臺阻止我在我的var聲明,它告訴我,我需要一個分號後聲明,我似乎並不需要
所以我一直在谷歌搜索幾個小時,我遇到了死衚衕作爲新手在MySQL所以任何人都可以填寫空白或點我在正確的方向,
這將是巨大
This results in 0000-00-00 00:00:00 ..所以我試着添加:set new.date = concat(year,「 - 」,(curdate()),' - ',new .date,'00:00:00');對於時間戳的正確格式,沒有運氣,而且,你能解釋一下你的代碼嗎? (特別是if語句)預先感謝 –
您需要確保'date'的值得到正確發送。正如我所說的,它必須是'm-d'格式,如果你使用其他格式,它將不起作用。 if語句是說你已經有了一些正確日期的數據,並且說你正在更新mysql的某些內容,那麼它可能會產生衝突。或者更好地檢查字符串長度爲'if length(new.date)= 5',表示您將數據發送爲「m-d」格式,以便將年份數據添加到其中,否則保持原樣。 –
還提供更新查詢,您將在可能的情況下執行更新查詢中'date'的值。 –