First off, stop doing that.
Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
In this case, that code isn't vulnerable to SQL injection, but it is likely to fail because SQL doesn't know what locale the user is in, and tries to "guess" what the actual date format is when it does the convert.
If you pass the DateTimePicker.Value property directly as a parameter, then it needs no conversion in any direction, and SQL just gets the correct value immediately.
s = " SELECT R.P_id, Patients.P_Name,Total_Reservation Date_Reservation , R.Notes FROM ResrvationData R ";
s = s + " WHERE Date_Reservation = @DR ";
s = s + " ORDER BY Date_Reservation desc , Total_Reservation ";
sCommand = new SqlCommand(s, con);
sCommand.Parameters.AddWithValue("@DR", dateTimePicker_Time.Value);