3 Replies Latest reply: Dec 15, 2015 7:34 AM by Anna Klimkova RSS

    Преобразовать текст в дату

    Павел Карасев

      Коллеги, нужна помощь.

      провайдер изменил формат отчета.

      нужно преобразовать дату из текстового формата в дату.

      Ковырялись в Клике (используем 11 версию) что-то не получается адекватно определить дату и время.

       

      спасибо.

        • Re: Преобразовать текст в дату
          Sergey Ovcharenko

          Прямого преобразования такого фармата даты в клике нет. Но несколько манипуляций и получите дату. Решение в приложении. !

          • Re: Преобразовать текст в дату
            Vladimir Kochetov

            Привет!

            Сначала делаем меппинг месяцев а дальше преобразование:

            MapMonth:

            Mapping

            load * inline [

            TEST,        NUMBER

            января,        01

            февраля,    02

            марта,        03

            апреля,        04

            мая,        05

            июня,        06

            июля,        07

            августа,    08

            сентября,    09

            октября,    10

            ноября,        11

            декабря,    12

            ];

            и

             

            LOAD Num(Left([Фактическое время местоположения абонента], 1), 00) & '.' & MapSubString('MapMonth', SubField([Фактическое время местоположения абонента], ' ', 2)) & '.' & SubField([Фактическое время местоположения абонента], ' ', 3) as 01

            FROM 12-15-2015-108.xls (biff, embedded labels, table is Отчет$);

            • Re: Преобразовать текст в дату
              Anna Klimkova

               

              Добрый день, Павел!

               

              Можно немного схитрить (если в приложении в других местах не используются полные названия месяцев в именительном падеже)

               

              и сделать вот так:

               

              SET LongMonthNames='января;февраля;марта;апреля;мая;июня;июля;августа;сентября;октября;ноября;декабря';
              Даты:
              LOAD
              date(date#([Фактическое время местоположения абонента],'DD MMMM YYYY г. hh:mm' )) as Тест
              FROM пример.xls
              (
              biff, embedded labels, table is Отчет$);

               

                Прием для создания поля Тест используется при загрузке даты с форматом, не совпадающим с системным форматом, а точнее с форматом, указанном в начале скрипта в переменной  DateFormat, например:

                 

              SET DateFormat='DD.MM.YYYY';

               

                Сначала в маске функции date#() мы описываем формат даты в источнике , а затем применяем текущий формат с помощью функции date.