C# - 为什么没有时间和日期保存在mysql数据库中?

时间:2013-12-10 17:26:04

标签: c# mysql sql

我有以下代码:

private void saveDT()
    {

        MySqlConnection myConn = new MySqlConnection(Common.myConnection);
        myConn.Open();
        string sLastLogin = DateTime.UtcNow.ToString("dd.MM.yyyy HH:mm:ss");
        MySqlCommand mySqlCmd = new MySqlCommand("UPDATE ha_system.tblaccounts SET lastlogin='" + DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + "' WHERE name='" + Common.ActiveUser + "'", myConn);
        try
        {
            mySqlCmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Fehler: " + ex.Message);
        }
        finally
        {
        }
    }

但是时间和日期仅在数据库列“lastlogin”中第二次登录后保存。 为什么?我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

除了关于避免SQL注入的其他注释之外,您不需要从.NET获取DateTime值到MySQL服务器,您可以使用内置函数并进行如下查询:

"UPDATE ha_system.tblaccounts SET lastlogin=NOW() WHERE ..."

答案 1 :(得分:1)

如果以有效格式编写日期时间文字,它应该可以正常工作。

dd.mm.yyyy hh:mm:ss不是MySQL日期时间文字的有效格式。无论如何,这也是模棱两可的。试试yyyy-mm-dd hh:mm:ss,在你正在使用的函数的正确位置使用H和M的适当大小写。

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-literals.html

而且,严肃地说,不要通过连接字符串来构建查询。