Как отобразить строку как дату? [Дубликат]

0

У меня есть столбец (строка (8)), который содержит данные типа 12032008, и я должен показать его как 12/03/2008. Что делать с поиском запроса?

Теги:

2 ответа

2

Наиболее подходящая вещь для вас здесь - остановить хранение информации о дате в текстовых столбцах. Вместо этого поставьте 12032008 в колонку datetime bona fide. Это сделает вашу жизнь проще всего в долгосрочной перспективе. Если вы не можете сделать это в краткосрочной перспективе, вот два варианта для вас.

Короче говоря, просто используя базовые строковые функции:

SELECT
    CONCAT(LEFT(col, 2), '/', SUBSTRING(col, 3, 2), '/', RIGHT(col, 4)) AS output
FROM yourTable;

Более длинный путь и, вероятно, лучшее долгосрочное решение, заключалось бы в том, чтобы сначала преобразовать строку даты в дату, а затем преобразовать ее обратно в строку, используя нужное форматирование:

SELECT
    DATE_FORMAT(STR_TO_DATE(col, '%d%m%Y'), '%d/%m/%Y') AS output
FROM yourTable;

демонстрация

2

В mysql сначала преобразуйте его в объект date с использованием STR_TO_DATE затем для форматирования используйте DATE_FORMAT

SELECT DATE_FORMAT(STR_TO_DATE('12032008','%d%m%Y'),'%d/%m/%Y')

Но в идеале вы не должны сохранять дату или дату как строки в таблице, это сделает вещи сложными для mysql, и для вас также

демонстрация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню