Как преобразовать строку в формат даты в MySQL?

0

Мой формат даты выглядит так: "201710". Я пытаюсь преобразовать эту строку в '2017-10-01'.

Как преобразовать из вышеупомянутого формата в требуемый формат в mysql?

Я попытался использовать следующий запрос:

SELECT *, DATE_FORMAT(yymm,'%Y-%m-%d') AS niceDate 
FROM table;

Но столбец niceDate показывает нуль.

Может кто-нибудь, пожалуйста, помогите мне....

Теги:

4 ответа

1

Я новичок в SQL, но я думаю, вам нужно указать столбец, который вы хотите отформатировать, например, я не уверен в точном коде для ваших данных, но что-то вроде;

select *, DATE_FORMAT(yourdata, "%Y/%m/%d") as niceDate
from table;

Измените "yourdata" на столбец даты, который вы хотите отформатировать. Дайте мне знать, если это поможет, спасибо :)

  • 0
    Привет, мое решение принесло тебе удачу?
0

вы можете использовать это:

  SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y') as 
    FROM    table

'yourdatefield' заменить на имя столбца даты.

0
You can use STR_TO_DATE() funcion to convert string to date, 

В вашем примере вы не предоставляете дневную часть, вы предоставляете только год и месяц, но для использования этой функции ваша строка должна иметь год, месяц и день. Пример.

SELECT STR_TO_DATE('20171001','%Y%m%d') ;
  • 0
    Я пытался использовать STR_TO_DATE () также. Но столбец niceDate все еще показывает ноль
  • 0
    я проверил его работало
Показать ещё 4 комментария
0

вы можете CONCAT свою строку /FIELD, тогда у вас есть действительная дата

SELECT str_to_date(CONCAT('201710','01'),'%Y%m%d');

ОБРАЗЕЦ

MariaDB [(none)]> SELECT str_to_date(CONCAT('201710','01'),'%Y%m%d');
+---------------------------------------------+
| str_to_date(CONCAT('201710','01'),'%Y%m%d') |
+---------------------------------------------+
| 2017-10-01                                  |
+---------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

Ещё вопросы

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