如何以编程方式捕获MySql中的时间戳?

时间:2013-10-28 16:29:58

标签: c# mysql

我是MySQL和数据库的新手,所以如果这是一个新手问题,我很抱歉。我正在创建一个带有users表的MySQL数据库。其中一列是UserAccept,另一列是UserAcceptWhen。当他们登录使用C#构建的程序时,他们必须首先接受用户协议。如果他们单击Accept,然后进入,但问题是关于更新表。点击“接受”后,UserAccept会从0更改为1,但如何以当前日期和时间更新UserAcceptWhen?另外,除非UserAccept列发生变化,否则我可以锁定该列的更改吗?

2 个答案:

答案 0 :(得分:1)

MySQL中有一个很棒的函数叫NOW(),它返回时间和日期。

UPDATE table SET UserAcceptWhen = NOW() WHERE id = 1;

答案 1 :(得分:1)

正如@Matt Clark所说,您可以使用MySQL NOW()函数来存储当前时间值。 一个小的附录是考虑使用触发器来更新UserAccept,当UserAccept发生变化时。 像这样:

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设置为Timestamp类型。

对于第二个问题:afaik你无法锁定一列进行更改。

通常情况下,使用数据库外部的逻辑(更容易转储数据库)更好,但它也是一个解决方案。