如何从MySQL数据库读取TimeStamp并检查是否等于今天的日期

时间:2019-03-30 18:52:27

标签: c# mysql datetime

从MySQL数据库中读取时间戳,并与今天的日期DateDeposited进行比较,格式为yyyy-MM-dd HH:mm tt

MySqlCommand cmd1 = conn.CreateCommand();
cmd1.CommandType = CommandType.Text;
cmd1.CommandText = ("select * from deposits where MemberID = @MemberID");
cmd1.Parameters.AddWithValue("@MemberID", lblmemberID.Text);

//DataReader
MySqlDataReader da;
conn.Open();

da = cmd1.ExecuteReader();

if (da.Read())
{
    // DateDeposited is timestamp
    if(da["DateDeposited"].ToString() == DateTime.Today.Date.ToString())
    {
         MessageBox.Show("Deposit already recorded");
         conn.Close();
    }
}

2 个答案:

答案 0 :(得分:0)

您正在寻找一种方法来找出时间戳记是否在今天当地时间00:00到23:59:59之间。

此查询有效。而且,由于您使用TIMESTAMP数据类型,并且在MySQL服务器中进行了日期比较,因此您不必担心MySQL机器和运行C#代码的机器上的时区设置是否不同。

SELECT *, 
       CASE WHEN (DATE(DateDeposited)) = CURDATE() THEN 'yes'
            ELSE 'No' END IsItToday 
       FROM deposits where MemberID = @MemberID

为什么起作用? DATE(ts)检索时间戳记的日期。

答案 1 :(得分:-1)

能够通过添加隐藏的datetimepicker并读取其值并检查其是否等于数据库中的时间戳日期来解决

MySqlCommand cmd1 = conn.CreateCommand();
cmd1.CommandType = CommandType.Text;
cmd1.CommandText = ("select * from deposits where MemberID=@MemberID and DepositAmount=@DepositAmount and (DATE_FORMAT(DateDeposited,'%Y-%m-%d')= CURRENT_DATE())");
cmd1.Parameters.AddWithValue("@Name", txtname.Text);
cmd1.Parameters.AddWithValue("@Phone", txtphone.Text.ToString());
cmd1.Parameters.AddWithValue("@DepositAmount", txtamount.Text.ToString());
cmd1.Parameters.AddWithValue("@Rate", txtrate.Text.ToString());
cmd1.Parameters.AddWithValue("@MemberID", lblmemberID.Text);

//DataReader
MySqlDataReader da;
conn.Open();

da = cmd1.ExecuteReader();

if (da.Read())
{
string s;
DateTime converted = Convert.ToDateTime(da["DateDeposited"]);
s = converted.ToString("yyyy/MM/dd");
if ( da["MemberID"].ToString()==lblmemberID.Text && da["DepositAmount"].ToString()== txtamount.Text.ToString()&& s.ToString()==dateTimePicker1.Value.Date.ToString("yyyy/MM/dd"))
{
 MessageBox.Show("Deposit already recorded", "Warning!!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
conn.Close();
}
}