У меня есть stringстолбец, который действует как, dateи я хочу выбрать его как date.
Является ли это возможным?
Мой пример данных формата будет; month/day/year->12/31/2011
У меня есть stringстолбец, который действует как, dateи я хочу выбрать его как date.
Является ли это возможным?
Мой пример данных формата будет; month/day/year->12/31/2011
Ответы:
Как сказали в MySQL, используя строковый столбец с текстом даты в качестве поля даты , вы можете сделать
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 DAY
Вы можете обрабатывать все виды макетов даты / времени таким образом. Пожалуйста, обратитесь к спецификаторам формата для DATE_FORMAT()функции, чтобы увидеть, что вы можете поместить во второй параметр STR_TO_DATE().
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
%d/%m/%Yаналогичную, поэтому STR_TO_DATE('31/11/1015', '%d/%m/%Y')имейте в виду, что выходные данные будут иметь YYYY-MM-DDформат 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
Для формата String используйте ссылку ниже
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