转换和比较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());
}
}
我怎样才能正确地进行比较?任何帮助吗?
你比较一下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中的日期也是很好的做法。这样你就不用担心时区和夏令时了。