SqlQuery = "SELECT * FROM server_works WHERE work_date > "
+ ТУТ ДАТА НА МЕСЯЦ МЕНЬШЕ ЧЕМ DateTime.Now
+ " ORDER BY work_date DESC";
Или както можно в sql задать дату на месяц меньше ?
26.01.06 01:33: Перенесено из '.NET'
Здравствуйте, Аноним, Вы писали:
А>SqlQuery = "SELECT * FROM server_works WHERE work_date > "
А>+ ТУТ ДАТА НА МЕСЯЦ МЕНЬШЕ ЧЕМ DateTime.Now
А>+ " ORDER BY work_date DESC";
А>Или както можно в sql задать дату на месяц меньше ?
Привет. Есть такая функция в SQL dateadd. Вот например если ты хочешь вычесть один день из даты
Пример:
declare @d as datetime
select @d = '2/1/2005'
dateadd(day, -1 ,@d)
Если хочешь вычесть один месяц, то соответственно dateadd(month, -1 ,@d)
И не надо беспокоиться по поводу высокосных не высокосных годов, а так же февраля месяца

и все такое. Вообщем пробуй.
Здравствуйте, Аноним, Вы писали:
SqlQuery = "SELECT * FROM server_works WHERE work_date > '"
+ DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") +
+ "' ORDER BY work_date DESC";
Здравствуйте, algol, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
A>A>SqlQuery = "SELECT * FROM server_works WHERE work_date > '"
A> + DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") +
A> + "' ORDER BY work_date DESC";
A>
По правилам хорошего тона правильно пользоваться одним источником даты во всем проекте. Либо это будет СУБД сервер, либо Application сервер (это образно выражаясь, не уверен что привел исключительно правильные термины, но смысл думаю понятен) и в общем случае эти сервера разные.
Как здесь уже правильно сказали, можно воспользоваться функцией dateadd для MS SQL, для Oracle есть функция ADD_MONTH, все зависит от СУБД.
P.S. Не имею ничего против приведенного выше кода, просто так мои комметарии. Бывает так что нужно запустить несколько одинаковых AppServers которые работают с одной базой, вот здесь и проявляются недостатки этого метода.