DateTime как получить дату на месяц назад например
От: Аноним  
Дата: 25.01.06 13:33
Оценка:
SqlQuery = "SELECT * FROM server_works WHERE work_date > "
+ ТУТ ДАТА НА МЕСЯЦ МЕНЬШЕ ЧЕМ DateTime.Now
+ " ORDER BY work_date DESC";

Или както можно в sql задать дату на месяц меньше ?

26.01.06 01:33: Перенесено из '.NET'
Re: DateTime как получить дату на месяц назад например
От: Mckey Россия  
Дата: 25.01.06 13:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>SqlQuery = "SELECT * FROM server_works WHERE work_date > "

А>+ ТУТ ДАТА НА МЕСЯЦ МЕНЬШЕ ЧЕМ DateTime.Now
А>+ " ORDER BY work_date DESC";

А>Или както можно в sql задать дату на месяц меньше ?


Тут от самого sql ничего не зависит — надо знать какие из функций реализованы в твоей базе данных. Для Oracle и MS SQL они могут быть разные.
Делай добро и бросай его в воду...
Re: DateTime как получить дату на месяц назад например
От: Vitaliy81  
Дата: 25.01.06 13:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>SqlQuery = "SELECT * FROM server_works WHERE work_date > "

А>+ ТУТ ДАТА НА МЕСЯЦ МЕНЬШЕ ЧЕМ DateTime.Now
А>+ " ORDER BY work_date DESC";

А>Или както можно в sql задать дату на месяц меньше ?


А какая дата будет на месяц раньше 30 марта?
Re: DateTime как получить дату на месяц назад например
От: alex_tim Украина  
Дата: 25.01.06 13:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>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)

И не надо беспокоиться по поводу высокосных не высокосных годов, а так же февраля месяца и все такое. Вообщем пробуй.
Re: DateTime как получить дату на месяц назад например
От: algol Россия about:blank
Дата: 25.01.06 14:01
Оценка:
Здравствуйте, Аноним, Вы писали:

SqlQuery = "SELECT * FROM server_works WHERE work_date > '"
    + DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") + 
    + "' ORDER BY work_date DESC";
Re[2]: DateTime как получить дату на месяц назад например
От: Alexey Frolov Беларусь  
Дата: 26.01.06 10:03
Оценка:
Здравствуйте, 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 которые работают с одной базой, вот здесь и проявляются недостатки этого метода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.