Member 13194079 Ответов: 2

Сортировка месяца в SQL


У меня есть "январь","февраль", "март"..."декабрь" как заключительный месяц.
Мне нужно разобраться в этом и у меня есть следующее
sqlString = "SELECT * FROM CustomerListTable ORDER BY ClosingMonth Asc"

Но на первом месте апрель.
Как я могу сделать так, чтобы январь наступил первым?
Есть ли какая-нибудь SQL-функция для изменения "января" на 1?

Что я уже пробовал:

sqlString = "SELECT * FROM CustomerListTable ORDER BY ClosingMonth Asc"

Member 13194079

Или я могу сделать свою собственную функцию, чтобы изменить "январь" на 1, и вставить эту функцию в инструкцию SQL? Не могли бы вы привести какой-нибудь пример SQL-оператора с моей собственной функцией ConvertMonthToNumber(byval month as string)

2 Ответов

Рейтинг:
18

OriginalGriff

Либо используйте таблицу для их преобразования и объединения как часть вашего выбора, либо добавьте к ней день и год и используйте функцию SQL MONTH:

SELECT MONTH('March' + ' 1 2019')

Функция SQL Server MONTH() [^]


Member 13194079

Это работает
Спасибо

OriginalGriff

Всегда пожалуйста!

Maciej Los

5!

Рейтинг:
1

Maciej Los

В дополнение к решению №1 от OriginalGriff я бы предложил преобразовать ClosingMonth К дата[^] столбец типа данных, чтобы избежать дальнейших "конверсий по требованию" и из-за производительности выполнения запроса.