转换和比较mysql和c#日期时间

本文关键字:日期 时间 mysql 比较 转换 | 更新日期: 2023-09-27 18:05:03

嗨,我正在做一个程序,在日记部分我遇到了一些问题。

在注册条目时,我使用以下代码,其中appdate是约会日期。dtpapdate是我的日期时间选择器。

cmd.Parameters.AddWithValue("?appdate", dtpappdate.Value.ToShortDateString());

上面的代码工作得很好,当我做条目时。它成功地将日期存储到mysql数据库中。

then当我从数据库中读取数据时,我想比较数据库中条目的日期和我在计算机上的当前日期,以便它只显示匹配的日期来显示我的待办事项列表。

下面是阅读和比较的代码,但是我的程序给了我一个错误。告诉我数据转换失败

DateTime dn = new DateTime();
        dn = DateTime.Now;
        string constring = "Server=localhost;Database=vetsoft; uid=root;pwd=geyikler88;";
        string command = "SELECT * FROM vetsoft.clients ";
        try
        {
            using (MySqlConnection myCon = new MySqlConnection(constring))
            {
               using (MySqlCommand cmd = new MySqlCommand(command, myCon))
              {
                  myCon.Open();
                  MySqlDataReader myReader = cmd.ExecuteReader();
                  while (myReader.Read())
                {
                    if( Convert.ToDateTime( myReader["appdate"].ToString()) == dn)
                    {
                        listBox1.Items.Add("İsim: " + myReader["name"].ToString() + " Telefon: " + myReader["phone"].ToString() + " P İsim: " + myReader["pname"].ToString() + " Yaş: " + myReader["age"].ToString() + " Randevu Saati: " + myReader["apptime"].ToString() + " Hastalık: " + myReader["sickness"].ToString() + " Ek Not: " + myReader["eknot"].ToString());
                    }
                }

我怎样才能正确地进行比较?任何帮助吗?

转换和比较mysql和c#日期时间

你比较一下c#的DateTime。Now == MySQL数据库中的日期时间。这是不太可能的,除非是纯粹的运气,因为日期时间。现在包括当前时间到刻度

假设您只对按日期匹配感兴趣,请使用DateTime。今天进行比较,但是MySQL数据库中的日期值也应该是date,所以如果要存储时间,则需要去掉其中的time。

您不应该将日期转换为字符串进行比较。如果您只想比较datetime的日期部分,请使用date属性,例如:

var appDate = myReader["appdate"] as Datetime;
if (appDate.Date == Datetime.Now.Date) {
    // Your code goes here
} 

在UTC中保存db中的日期也是很好的做法。这样你就不用担心时区和夏令时了。