to_date в формате dd / MM / yyy
У меня есть столбец в виде строки, которую 10/12/2020 13:14:39
я хочу преобразовать в формат даты (позже я сделаю это с помощью инструмента рефакторинга). Сначала мне нужно изменить это так, чтобы время было отброшено, а значение было dd/MM/yyyy
расположено как yyyy/MM/dd
.
Я использую калькулятор поля, как мне это сделать?
Я пробовал to_date("CreatedAt", 'dd/MM/yyyy')
и format_date("CreatedAt", 'dd/MM/yyyy')
не дал правильного результата.
Ответы
Поскольку вы начинаете со строки даты и времени, вы можете полностью проанализировать ее и отформатировать результат в виде простой строки даты за один шаг:
format_date(to_datetime('10/12/2020 13:14:39',
'dd/MM/yyyy HH:mm:ss'),
'yyyy/MM/dd')
или
format_date(to_datetime("CreatedAt",'dd/MM/yyyy HH:mm:ss'),'yyyy/MM/dd')
(Обратите внимание на «Предварительный просмотр: '2020/12/10'» в Edit/Select/Select by Expression
окне ниже:

Документация по QGIS to_data
и атрибуту to_datetime
выражения format
и его синтаксическому анализу находится в QT какhttps://doc.qt.io/qt-5/qdate.html#fromString-1 и https://doc.qt.io/qt-5/qtime.html#toString. Вы можете найти свой путь к ним через текст описания функции выражения QGIS.
Конечно, есть способ получше, после случайной догадки я получил это.
Substr("CreatedAT",0,-9)
To_date("CreatedAt", format('dd/MM/yyyy'))
Format_date("EndDate",'yyyy/MM/dd')
Я оставлю это здесь на время, чтобы дать людям шанс сделать это более красноречиво.