I am stuck with the simple select operation with date parameters. I have records persisted in the database with InsertDate field (which is timestamp data type). I am simply trying to get between two dates. There is no timezone difference in the dates so that is not the problem.
using (MySqlConnection conn = new MySqlConnection(cnstr))
using (MySqlCommand cmd = new MySqlCommand("sp_kpis", conn))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(new MySqlParameter() { DbType = System.Data.DbType.DateTime, ParameterName = "start_date", Value = startDate });
cmd.Parameters.Add(new MySqlParameter() { DbType = System.Data.DbType.DateTime, ParameterName = "end_date", Value = endDate });
cmd.Parameters.Add(new MySqlParameter() { DbType = System.Data.DbType.String, ParameterName = "period", Value = period });
await conn.OpenAsync();
DbDataReader dr = await cmd.ExecuteReaderAsync();
double result = 0;
while (dr.Read())
{
result = dr.GetDouble(0);
}
return result.ToString();
}
This query returns null:
select SUM(VALUE) as returnValue
from rawkpicalculations
where INSERTDATE between start_date AND end_date;
However query returns result like this:
select SUM(VALUE)
from rawkpicalculations
where INSERTDATE between '2024-02-01 00:39:00' AND '2024-02-19 01:39:00'
And the procedure is:
CREATE DEFINER=`al_user`@`111.111.111.111` PROCEDURE `sp_kpis`(in start_date date, in end_date date, in period varchar(5))
BEGIN
select SUM(VALUE) as returnValue from rawkpicalculations where INSERTDATE between start_date AND end_date;
END
Also when I set parameters like '2024-01-19 01:39:00' between '2024-02-19 01:39:00', the query works but result is not correct.
What am I missing?