Как прочитать TimeStamp из базы данных MySQL и проверить, совпадает ли с сегодняшней датой - PullRequest
0 голосов
/ 30 марта 2019

Считайте TimeStamp из базы данных 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 голосов
/ 05 апреля 2019

удалось разрешить, добавив скрытый указатель даты и времени и прочитав его значение, и проверил, равно ли оно дате отметки времени из базы данных

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();
}
}
0 голосов
/ 30 марта 2019

Вы ищете способ узнать, является ли отметка времени между 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) возвращает дату отметки времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...