C# 如何以编程方式在MySql中捕获时间戳?
我是MySQL和数据库的新手,如果这是一个新手问题,我很抱歉。我正在创建一个带有users表的MySQL数据库。其中一列是C# 如何以编程方式在MySql中捕获时间戳?,c#,mysql,C#,Mysql,我是MySQL和数据库的新手,如果这是一个新手问题,我很抱歉。我正在创建一个带有users表的MySQL数据库。其中一列是UserAccept,另一列是UserAcceptWhen。当他们登录到使用C#构建的程序时,他们必须首先接受用户协议。如果他们单击Accept,然后进入,但问题是更新表。单击“接受”后,UserAccept将从0更改为1,但如何让UserAcceptWhen更新当前日期和时间?另外,我是否可以锁定该列不更改,除非UserAccept列更改?MySQL中有一个名为NOW()的
UserAccept
,另一列是UserAcceptWhen
。当他们登录到使用C#构建的程序时,他们必须首先接受用户协议。如果他们单击Accept,然后进入,但问题是更新表。单击“接受”后,UserAccept
将从0更改为1,但如何让UserAcceptWhen
更新当前日期和时间?另外,我是否可以锁定该列不更改,除非UserAccept
列更改?MySQL中有一个名为NOW()
的强大函数,它返回时间和日期
UPDATE table SET UserAcceptWhen = NOW() WHERE id = 1;
正如@Matt Clark所说,您可以使用MySQL NOW()函数来存储当前时间值。 一个小附录是考虑在用户接受更改时使用触发器更新用户接受。 大概是这样的:
DELIMITER //
CREATE TRIGGER UserAcceptedNOW BEFORE UPDATE ON user
FOR EACH ROW
BEGIN
IF (NEW.UserAccepted = 1) THEN
SET NEW.UserAcceptedWhen = NOW();
END IF;
END
//
不要忘记将UserAcceptWhen设置为时间戳类型
对于第二个问题:好吧,您不能为更改而锁定列
通常,最好在db之外使用逻辑(转储db会更容易),但这也是一种解决方案