OriginalGriff
Пара вещей.
1) Вы не используете параметр, который создаете в своем запросе, так зачем же вы его вообще создаете?
2) Вы пропускаете близкую скобку в этом SQL.
3) Если вы попытаетесь использовать этот параметр, он потерпит неудачу - при условии, что ваш столбец ValidityDate
это поле DATE, DATETIME или DATETIME2, потому что строка "yyyy/MM/dd hh:MM:tt:ss" не является допустимой датой. "2018/10/03 10:40:33" есть, но "yyyy/MM/dd hh:MM:tt:ss" нет. Таким образом, SQL выдаст исключение...
4) в GetDate
функция возвращает текущую дату и время на сервере - что может не иметь никакого отношения к дате на вашем компьютере, это зависит от того, где находится компьютер и как он был настроен, когда он был настроен. Вы должны использовать его только в том случае, если ваш ValidityDate
колонка была вставлена и обновлена в терминах GetDate
быть последовательным.
Я бы предложил вот что:
string sql = "SELECT Description FROM tbl_Announcements where Active = 1 AND ValidityDate >= @ValidityDate";
using (SqlCommand cmd1 = new SqlCommand(sql, con))
{
cmd1.Parameters.AddWithValue("@ValidityDate", DateTime.Now.Date);
using (SqlDataReader dr1 = cmd1.ExecuteReader())
{
...