如何在数据库中插入日期时间

本文关键字:插入 日期 时间 数据库 | 更新日期: 2023-09-27 18:21:23

我正在制作考勤系统,不知道如何将日期时间存储在数据库中。我真的需要一些关于我的系统的帮助。如果有人有任何考勤代码,请分享你的代码。谢谢。。

这是我的代码:

con = newSqlConnection(@"DataSource=.'SQLEXPRESS;AttachDbFilename=|DataDirectory|'Database.mdf;Integrated Security=True;User Instance=True");

        dt = new DataTable();
        cmd = new SqlCommand(@"SELECT EmpID FROM data WHERE EmpID='" + Code.Text + "'", con);
        con.Open();

        sdr = cmd.ExecuteReader();
        int count = 0;
        while (sdr.Read())
        {
            count = count + 1;
        }
        con.Close();
        if (count == 1)
        {
            con.Open();
            DateTime dtn = DateTime.Now;
            dtn = Convert.ToDateTime(DateTime.Now.ToString("hh:mm"));
            string query = @"INSERT INTO Time (TimeIn) Values ('" + dtn + "')";
            cmdd = new SqlCommand(query, con);
            sdr = cmdd.ExecuteReader();
            sdr.Read();
            dataGridView.DataSource = databaseDataSet.Time ;
            con.Close();
            MessageBox.Show("Verify Ok");
        }
        else
        {
            MessageBox.Show("Please Try Again");
        }

如何在数据库中插入日期时间

不要使用ExecuteReader(),而是使用ExecuteNonQuery();添加查询参数,不修改查询文本,从技术上讲可能是这样的:

...
if (count == 1) {
  ...
  DateTime dtn = DateTime.Now;    
  string query = 
    @"insert into Time (
        TimeIn) 
      values (
        @TimeIn)"; // <- query parameter instead of query text modification
  using (var query = new SqlCommand(query, con)) {
    // bind query parameter with its actual value 
    query.Parameters.AddWithValue("@TimeIn", dtn);
    // Just execute query, no reader
    query.ExecuteNonQuery();
  }
  ...

然而,问题中出现的表Time看起来非常奇怪,它几乎不只包含TimeIn字段。