Подскажите пожалуйста как можно преобразовать текущий вид даты 6 мая 2015 в текстовом формате в такой вид 06.05.2015.
Вечер добрый.
Что мы имеем? Имеем тестовую строку.
Нам надо ее разобрать на три составляющие.
Для расчленения используйте SubField(), в качестве разделителя - пробел, при это крайние пробелы надо предварительно убрать.
Для формирования формата даты - MakeDate()
Для перевода текстового обозначения месяца в числовое используйте маппинг.
ApplyMap() можно использовать в качестве параметра для MakeDate().
Кстати, вопрос по скрипту или переменной?
Если по скрипту, то вот пример:
Месяца:
Mapping LOAD * INLINE [
F1, F2
апрель, 4
апреля, 4
апр, 4
май, 5
июнь, 6
июн, 6
];
LOAD *,
MakeDate(SubField(F1,' ', 3),ApplyMap('Месяца',SubField(F1,' ',2)),SubField(F1,' ',1)) As [Дата]
INLINE [
F1
10 апреля 2015
3 апр 2015
6 май 2015
];
Спасибо. Не подскажите как преобразовать такой вид записи в скрипте 2015/06/09 10:59:00 к 09.06.20015
А каким образом тянете данные и каков их источник?
Если из какой нибудь базы, то можно использовать функции самой БД для конвертации даты.
Добрый день.
Попробуйте вот так:
date(ВАША ДАТА, 'DD.MM.YYYY')
Цитата: R Dmitry от 09 июня 2015, 05:39:52
А каким образом тянете данные и каков их источник?
Если из какой нибудь базы, то можно использовать функции самой БД для конвертации даты.
Источник excel
Цитата: asdlegioner от 09 июня 2015, 05:54:37
Цитата: R Dmitry от 09 июня 2015, 05:39:52
А каким образом тянете данные и каков их источник?
Если из какой нибудь базы, то можно использовать функции самой БД для конвертации даты.
Источник excel
Так не получается. Я отсек все лишнее таким способом =left(Дата,10) получилось так
2015/06/09 теперь не знаю как убрать наклонною черту и перевернуть дату.
Привет.
Если данные грузятся из Excel и в таблицах все сделано стандартно, то есть дата - как дата.
То проблем нет никаких, просто пишем date(ceil(Дата)) as Дата и будет дата по формату без минут и секунд.
Дата хранится в числовом виде. Целые - даты, дробное значение - время.
Как бы не отображалось в Excel, для клика отдается в числовом виде , а тот опять уже делает формат по умолчанию, и время прячет. Поэтому и используем округление ceil()
Цитата: admin от 09 июня 2015, 07:35:09
Привет.
Если данные грузятся из Excel и в таблицах все сделано стандартно, то есть дата - как дата.
То проблем нет никаких, просто пишем date(ceil(Дата)) as Дата и будет дата по формату без минут и секунд.
Дата хранится в числовом виде. Целые - даты, дробное значение - время.
Как бы не отображалось в Excel, для клика отдается в числовом виде , а тот опять уже делает формат по умолчанию, и время прячет. Поэтому и используем округление ceil()
Не получилось привести(
Если текстовую строку требуется преобразовать в формат Даты, то можно использовать MakeDate
http://qlikview-forum.ru/qvf/index.php/topic,762.msg1564.html#msg1564 (http://qlikview-forum.ru/qvf/index.php/topic,762.msg1564.html#msg1564)
Добрый день,коллеги! Если данные грузятся из Excel и месяца в виде январь,февраль,март. Это значит только мэппинг поможет в числовой перевести? Больше ничего?
Добрый день.
Интересный вопрос - и легкий и сложный одновременно.
Пока, пришел к выводу, что только Меппинг или if может решить данную задачу.
Меппинг более правильный вариант, отрабатывать будет на много быстрее чем if.
Можно попробовать вот такое решение:
SET LongMonthNames='январь;февраль;март;апрель;май;июнь;июль;август;сентябрь;октябрь;ноябрь;декабрь';
Data:
LOAD * Inline [
NN, MONTH
1, январь
2, февраль
];
Store * from Data into Data.qvd (qvd);
DROP Table Data;
Data:
LOAD NN,
Mid((Date(Date#('01 ' & MONTH & ' 2015', 'DD MMMM YYYY'))), 4, 2) as MONTH
FROM Data.qvd (qvd);
Правда, вариант с Меппингом более гибкий и лучше.