Есть несколько способов сделать это без конвертации в правильный формат даты / времени, но все они будут очень медленными. Если вообще возможно преобразовать это поле в правильное поле даты / времени (или даже добавить дополнительное поле для хранения правильно отформатированных даты / времени), тогда вы должны сделать это и быть уверенным, что поле проиндексировано.
Если вы действительно ограничены и должны иметь дело с таблицей как есть, самый простой способ сделать это - написать функцию, которая переводит эту строку в дату / время и сортирует по этой функции.
Вот функция быстрой выборки:
Function ConvertDateTime(dt As String) As Date
Dim Flds As Variant
Flds = Split(dt, ",")
ConvertDateTime = DateSerial(Flds(2), Flds(1), Flds(0)) + _
TimeSerial(Flds(3), Flds(4), 0)
End Function
Тогда ваш запрос будет включать следующее предложение Order By
:
ORDER BY ConvertDateTime([day,month,year,hour,minute])
РЕДАКТИРОВАТЬ : Ваш вопрос немного неоднозначен, как в настоящее время. Если у вас есть пять отдельных столбцов, сортировка будет простой: ORDER BY [Year], [Month], [Day], [Hour], [Minute]
Я предположил, что это не тот случай, иначе вы бы легко это выяснили.