parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

вот что получилось..... не пинайте, я только учусь

Артём 01.02.2003 00:37

тип поля date DATETIME.
эта функция нужна мне для архива новостей. В архиве, в качестве навигации у меня список месяцев, т.к. в данном случае новостей не ожидается очень много.

Поэтому мне необходимо вытаскивать из БД новости за конкретный месяц(за январь, или март, по какому кликнут), а за 30 дней будет смотреться не логично.

сегодня доделал и всё заработало.
Вот функция:
@select_for_header_by_month[month;limit][month;limit]
$temp_date[^date::create($date_now.year;$month;1)]
^temp_date.roll[month](+1)
^if(def $limit && def $month){
	^MAIN:dbconnect{
		$result[^table::sql{select id, autor, date, header from news 
				where date < '${date_now.year}-${temp_date.month}-1 00:00:01' and
				date > '${date_now.year}-${month}-1 00:00:01'
				order by date desc}[$.limit($limit)]]
	}
}
задумка такая была
$temp_date[^date::create($date_now.year;$month;1)]
- создаем вымышленную дату, в которой месяц нам заданный;
^temp_date.roll[month](+1)
- увеличиваем поле month на 1, т.е. получаем следующий месяц;
далее проверяем на попадание в промежуток между 1 чилом 00:00:01 (первой секундой) заданного месяца и 1 числом 00:00:01 (первой секундой) следующего месяца.

первые числа взял я чтоб не мучатся с 30 чилом 31, 29
$result[^table::sql{select id, autor, date, header from news 
				where date < '${date_now.year}-${temp_date.month}-1 00:00:01' and
				date > '${date_now.year}-${month}-1 00:00:01'
				order by date desc}[$.limit($limit)]]