Строка в ДатуВремя в Запросе

miha 132 1 7 1

Запрос Преобразовать конвертировать строку в ДатаВремя "ГГГГММДДЧЧННСС" Запросом из Строки

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    01                КАК  НомерСтроки,
    "20260105170929"  КАК  Строка,
    "20221231235959"  КАК  Строка1
ПОМЕСТИТЬ Дано

ОБЪЕДИНИТЬ ВСЕ
    //

ВЫБРАТЬ
    02                КАК  НомерСтроки,
    "20260827140942"  КАК  Строка,
    "20221201000000"  КАК  Строка1

ОБЪЕДИНИТЬ ВСЕ
    //

ВЫБРАТЬ
    03                КАК  НомерСтроки,
    "20250626010517"  КАК  Строка,
    "20230318122825"  КАК  Строка1

ОБЪЕДИНИТЬ ВСЕ
    //

ВЫБРАТЬ
    04                КАК  НомерСтроки,
    "20251105201511"  КАК  Строка,
    "20230105155243"  КАК  Строка1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    0     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    1000  КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С
ПОМЕСТИТЬ Формат

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    100   КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    10    КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    1     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4     КАК  Х,
    0     КАК  Д,
    10    КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5     КАК  Х,
    0     КАК  Д,
    1     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6     КАК  Х,
    10    КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7     КАК  Х,
    1     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    10    КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9     КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    1     КАК  Ч,
    0     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    10    КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    10    КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    11    КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    1     КАК  Н,
    0     КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    12    КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    10    КАК  С

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    13    КАК  Х,
    0     КАК  Д,
    0     КАК  М,
    0     КАК  Г,
    0     КАК  Ч,
    0     КАК  Н,
    1     КАК  С
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Дано.НомерСтроки,
    ДОБАВИТЬКДАТЕ(
        ДОБАВИТЬКДАТЕ(
            ДОБАВИТЬКДАТЕ(
                ДОБАВИТЬКДАТЕ(
                    ДОБАВИТЬКДАТЕ(
                        ДОБАВИТЬКДАТЕ(
                            ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
                            СЕКУНДА,
                            СУММА(А.С * Б.Х)
                        ),
                        МИНУТА,
                        СУММА(А.Н * Б.Х)
                    ),
                    ЧАС,
                    СУММА(А.Ч * Б.Х)
                ),
                ДЕНЬ,
                СУММА(А.Д * Б.Х) - 1
            ),
            МЕСЯЦ,
            СУММА(А.М * Б.Х) - 1
        ),
        ГОД,
        СУММА(А.Г * Б.Х) - 1
    )                                                   КАК  Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
    Дано    КАК  Дано,
    Формат  КАК  А,
    Формат  КАК  Б

ГДЕ ИСТИНА
    И А.Х < 14
    И Б.Х < 10
    И ПОДСТРОКА(Дано.Строка,  А.Х + 1, 1) =
      ПОДСТРОКА("0123456789", Б.Х + 1, 1)

СГРУППИРОВАТЬ ПО
    Дано.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Дано.НомерСтроки,
    ДОБАВИТЬКДАТЕ(
        ДОБАВИТЬКДАТЕ(
            ДОБАВИТЬКДАТЕ(
                ДОБАВИТЬКДАТЕ(
                    ДОБАВИТЬКДАТЕ(
                        ДОБАВИТЬКДАТЕ(
                            ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
                            СЕКУНДА,
                            СУММА(А.С * Б.Х)
                        ),
                        МИНУТА,
                        СУММА(А.Н * Б.Х)
                    ),
                    ЧАС,
                    СУММА(А.Ч * Б.Х)
                ),
                ДЕНЬ,
                СУММА(А.Д * Б.Х) - 1
            ),
            МЕСЯЦ,
            СУММА(А.М * Б.Х) - 1
        ),
        ГОД,
        СУММА(А.Г * Б.Х) - 1
    )                                                   КАК  Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
    Дано    КАК  Дано,
    Формат  КАК  А,
    Формат  КАК  Б

ГДЕ ИСТИНА
    И А.Х < 14
    И Б.Х < 10
    И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
      ПОДСТРОКА("0123456789", Б.Х + 1, 1)

СГРУППИРОВАТЬ ПО
    Дано.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    тОтвет.НомерСтроки,
    тОтвет.Ответ,
    тОтвет1.Ответ1
ИЗ
    ВТ_Ответ  КАК  тОтвет
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            ВТ_Ответ1  КАК  тОтвет1
                ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
0
{} Ожидается идентификатор

См. также

Строка в Дату в Запросе

Как по GUID определить время и дату создания ссылки?

Строка в дату по форматной строке

УстановитьУсловноеОформлениеПоляДата (БСП)

Как получить дату и время создания элемента справочника, документа по ссылке

Вывод месяца строкой из даты

Функция ВремяГода(мес)

Конвертация даты из формата ISO8601 в дату 1С с учетом миллисекунд

СтрокаВДату (БСП)

Модератору