Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Perl. Извлечение полной даты из БД Oracle с типом поля DATE

14K
16 марта 2006 года
den_mechel
16 / / 16.03.2006
Такая проблема помогите...
-Есть БД Oracle
-в БД есть таблица в которой одно из полей содержит дату (тип записи DATE)
-для подключения к базе из Perl я использую DBI::Oracle

Соединяюсь всё хорошо, делаю выборки из этой таблицы, в выборки попадает и это поле с датой...
Но когда я пытаюсь занести выбранное значение даты в переменную, то значением переменной становиться не полная дата (число месяц год час мин сек), а короткая (число месяц год)
А для анализа мне "час мин сек" то же нужны как быть?
X)-
Вот код программы:
# соединяемся с базой
$dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd) or die print DBI::errstr;
#Формируем строку селекта (поле strt содержит дату)
$statement=q{select up,STRT,num,DUR,SERVICES,NUM_A,R_ROAMFILE_SEQ from num_calls where up=}.$up_in.q{ and STRT=to_date ('}.$strt_in.q{', 'dd-mm-yyyy hh24:mi:ss') and services='}.$services_in.q{'};
# компилим и выполняем селект
$sth=$dbh->prepare ($statement);
$sth->execute();
while(@string_my=$sth->fetchrow_array())
{
# извлекаем данные из выборки и печатаем их
my $up=$string_my[0];
my $strt=$string_my[1];
my $num=$string_my[2];
my $dur=$string_my[3];
my $service=$string_my[4];
my $num_a=$string_my[5];
my $r_roamfile_seq=$string_my[6];
print "$up $strt $num $dur $service $num_a $r_roamfile_seq\n";
}
$dbh->disconnect or die "DBI::errstr\n";


Врезультате на экране получаем
1660 02.03.06 Traffic 3249 151 250094040002289 -2

Как видно дата вышла в виде 02.03.06, а куда делось время то
Помогите плиз...
14K
17 марта 2006 года
den_mechel
16 / / 16.03.2006
http://forums.webscript.ru/showthread.php?postid=23983
Что то вроде нашёл.. но ведь блин не одна ссылка из этого форума не работает
14K
17 марта 2006 года
den_mechel
16 / / 16.03.2006
Ладно уже спасибо всё понял
Запрос я не верно формировал по полю STRT
Нужно было так to_char(STRT,'YYYY-MM-DD HH24:MI:SS') заместо STRT

Т.Е. программа должна так выглядеть

#Формируем строку селекта (поле strt содержит дату)
$statement=q{select up,to_char(STRT,'YYYY-MM-DD HH24:MI:SS')
,num,DUR,SERVICES,NUM_A,R_ROAMFILE_SEQ from num_calls where up=}.$up_in.q{ and STRT=to_date ('}.$strt_in.q{', 'dd-mm-yyyy hh24:mi:ss') and services='}.$services_in.q{'};

Спасибо всем за помощь

:D :D :D :x :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог