Итак, что я пытаюсь сделать, это вычитать количество недель с даты, просто, правильно?MySQL не конвертирует строку в int, несмотря на то, что ее отличает
Однако запрос возвращает строку, на которую я верю, потому что, как бы я ни старался ее сортировать, она по-прежнему сортируется в следующем порядке: 0, 1, 10, 11, 12, ... 19, 2, 21
Конечно, у меня есть googled, я уже пробовал CAST AS SIGNED/UNSIGNED/INT/DECIMAL. Я попытался форматировать его, умножить на один, добавить нуль к результату - ничего не происходит.
Я использую свой запрос в BIRT - поскольку мне удалось его отсортировать в таблице BIRT, он по-прежнему подвергается скрупулезности в диаграммах Workbench и BIRT - и это делает их похожими на ерунду.
Теперь, когда я пишу этот пост Я понимаю, что проблема в том, что у меня есть случае:
SELECT, случай, когда 2 = 1 ТОГДА SUBSTR (MyDate, 1, 7) ИНАЧЕ CAST (Неделя (MyDate, 0) AS SIGNED) END AS 'data' FROM mytable
Ещё: почему CAST не работает, когда он сопровождается CASE, который может возвращать строку? Я хотел бы условно разрешить пользователям выбирать, сгруппированы ли данные по ГГГГ-ММ (год и месяц) ИЛИ по неделям, теперь кажется, что я застрял.
Это моя проблема, когда я использую версию, она сортирует числа в «строки типа» порядок, так что 0, 1, 10 и так далее. Похоже, что использование НЕДЕЛИ с CASE не возвращает номер. – Marcin
@ Марцин, хм ... см. Редактирование в ответ, если это помогает. – Rahul
VARCHAR недействителен. Исходя из этого: http://dev.mysql.com/doc/refman/5.7/ru/cast-functions.html#function_convert Я пробовал с CHAR/NCHAR, к сожалению без радостного en - потому что они возвращают строки. – Marcin