За последние 24 часа нас посетили 20925 программистов и 1129 роботов. Сейчас ищут 382 программиста ...

Проблемы с датами

Тема в разделе "Oracle Database", создана пользователем Ruark2507, 18 июн 2008.

  1. Ruark2507

    Ruark2507 Активный пользователь

    С нами с:
    18 июн 2008
    Сообщения:
    8
    Симпатии:
    0
    В Оракловской базе есть поле типа Date.
    Базу пользуют два приложения - на С++ Билдере и на PHP.
    В базе все даты лежат в формате дд.мм.гггг
    На Билдере при инициализации приложения задается ShortDateFormat, в котором указывается, что год четырехзначный.
    На пхп что только не делал, но год даты - двухзначный, то есть при считывании даты из оракловской базы она в любом случае возвращается в формате дд.мм.гг, а нужно дд.мм.гггг.

    Кто знает как это побороть???
     
  2. ozland

    ozland Активный пользователь

    С нами с:
    15 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Можно из пхп выбирать дату как TO_CHAR(DATE, 'DD.MM.YYYY')
     
  3. cmd

    cmd Активный пользователь

    С нами с:
    31 авг 2006
    Сообщения:
    19
    Симпатии:
    0
    Может подскажет кто как должно быть?

    Из базы вывод работает
    в базе как 05.11.2008
    [sql]select to_char(date, 'dd.mm.yy') from date[/sql]
    после запроса как: 05.11.08

    А на странице не работает:
    Пробовал в запросе сделать - не отображает страницу. Работает если будет просто запрос select date from date.
    PHP:
    1. $stmt = oci_parse($conn, "select to_char(date, 'dd.mm.yy') from date");
    - а так не работает.

    Если вставить при обработке массива - тоже не работает.
    PHP:
    1. while ($row = oci_fetch_array ($stmt, OCI_BOTH))
    2. {
    3. $date=TO_CHAR($row['DATE'], "dd.mm.yy");  - это не работает...
    4.  
    5.   //  echo "<b>".$row['DATE']."</b>";     - а если это оставить, то работает
    6. }
     
  4. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    В SQL
    [sql]select to_char(date, 'dd.mm.yy') from date[/sql]
    to_char() функция оракла.

    В php
    PHP:
    1. <?php
    2. $date=TO_CHAR($row['DATE'], "dd.mm.yy");
    to_char() функция php. Которой не существует.

    Так должно быть в похапэ
    PHP:
    1. <?php
    2. $date = date('d.m.Y', strtotime($row['DATE']));
    upd strtotime() формирует любую ангосакскую дату в unix timestamp, а функция date() принимает тайштамп и переводит в формат d.m.Y, что значит ДД.ММ.ГГГГ. http://php.net/date - тут подробнее.
     
  5. cmd

    cmd Активный пользователь

    С нами с:
    31 авг 2006
    Сообщения:
    19
    Симпатии:
    0
    Спасибо большое, все работает.
     
  6. borales

    borales Активный пользователь

    С нами с:
    10 ноя 2008
    Сообщения:
    1
    Симпатии:
    0
    А если нужно вывести в цикле все значения из $row['DATE'] с корректными названиями месяцев?

    PHP:
    1. $result = mysql_query("SELECT id,title,date_format(date, '%d.%m.%Y, %H:%i')as date,description,author FROM lessons ORDER BY date DESC",$db);
    нужно прилепить проверку и вывод даты.

    PHP:
    1. $month_arr = array( 1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля', 5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа', 9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря' );];
    2.  
    +
    PHP:
    1. do
    2. {
    3. ...
    4.  
    5. $myrow['date']
    6.  
    7. )
    8. ...
    9. }  
    10. while ($row = mysql_fetch_array($result));
    Как сделать проверку и вывод?

    в РНР новичек :D
     
  7. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Ну и при чём тут Oracle?