|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander V. Gaiduk 2:5020/400 28 Mar 2002 11:29:56 To : Denis Roshchin Subject : Hа: работа с датой... --------------------------------------------------------------------------------
> У меня есть переменна $dt_sql, содержащая
> дату в формате mysql datetime. Hадо сделать поиск
> в базе на все даты, которые также на пять дней ранее и позднее...
> Можно-ли это как-то автоматически сделать средствами
> mysql или perl?
> Можно конечно вручную писать, но получается слишком массивно,
> т.к. надо считать еще, что там бывают первые и последние числа итд итп...
как то давно я для Interbase такое делал:
# дата в формате dd.mm.yyyy
($d,$m,$y) = split(/\./, $asa{'date'});
# дорисовываю ведущие нули - Interbase так требует
$asa{'date'} = sprintf("%02d.%02d.%04d", $d,$m,$y);
# количество дней после этой даты
$asa{'days'} =~ s/\D+//g;
# если только за один день
if ($asa{'days'} eq "") {
$enddate = $asa{'date'};
} else {
# если нужен интервал дней
($d,$m,$y) = split(/\./, $asa{'date'});
# функция str2time из HTTP::Date;
$enddate = str2time($y.$m.$d) + $asa{'days'}*60*60*24;
$d = (localtime($enddate))[3];
$m = (localtime($enddate))[4]+1;
$y = (localtime($enddate))[5]+1900;
$enddate = sprintf("%02d.%02d.%04d", $d,$m,$y);
}
$query = "select * from $table where gdate between \'$asa{'date'}\' and
\'$enddate\' order by cod";
может и криво, давно писал, переписывать лениво.
но работает.
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/11999f19eb7cf.html, оценка из 5, голосов 10
|