У меня есть столбец string
, который действует как date
, и я хочу выбрать его как date
.
Возможно ли это?
Мой пример формата данных: месяц/день/год
-> 12/31/2011
.
Как было сказано на сайте https://stackoverflow.com/questions/1908394/mysql-using-a-string-column-with-date-text-as-a-date-field, вы можете сделать
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM yourtable
Вы также можете обрабатывать эти строки дат в предложениях WHERE
. Например
SELECT whatever
FROM yourtable
WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAYS
Таким образом можно обрабатывать всевозможные варианты расположения даты/времени. Обратитесь к спецификаторам формата для функции DATE_FORMAT()
, чтобы узнать, что можно подставить во второй параметр STR_TO_DATE()
.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html используйте указанную страницу для получения дополнительной информации о функциях в MySQL
SELECT STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM table
например, для получения результата используйте следующий запрос
SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table
Для получения строкового формата используйте следующую ссылку
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
Здесь'еще два примера.
В выходной день, месяц и год, вы можете использовать:
select STR_TO_DATE('14/02/2015', '%d/%m/%Y');
Которая производит:
2015-02-14
Также выходное время, вы можете использовать:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
Которая производит:
2017-02-14 23:38:12