2010-06-14 4 views
0

Можно ли использовать DATE_SUB(".$date." , INTERVAL 100 DAY), если тип столбца, в котором хранится дата, является varchar (255), или мне нужно преобразовать этот столбец в тип «DATE»?Mysql data convert

ответ

1

Да, это возможно, если вы храните свои данные в формате yyyy-mm-dd.
В противном случае вы должны изменить его на этот.

+0

Дата хранится в формате d-m-y. Если я попытаюсь запросить mysql, используя запрос SELECT * из видео WHERE user_id = $ id AND date_uploaded> = DATE_SUB (". $ Date.", INTERVAL 100 DAY) 'Я не могу получить никакого результата. Для преобразования даты я использую команду PHP '$ date = date (' d-m-y ')' В чем может быть проблема с этим запросом? – Sergio

+1

@ Серхио проблема ОБЫЧНАЯ: вам нужно конвертировать дату, хранящуюся в базе данных. Вам нужно преобразовать этот столбец в тип «DATE», да. И вы сделаете себе ОГРОМНУЮ пользу, сделав это. (Обратите внимание, что сначала вам нужно преобразовать значение этого столбца, или вы потеряете данные.) –

0

Вы можете преобразовать свою дату, сохраненную как varchar, используя функцию STR_TO_DATE() в mysql. например

DATE_SUB(STR_TO_DATE(date_column_name,'%d-%m-%y'),INTERVAL 100 DAY), просто убедитесь, что строка форматирования даты соответствует формату того, что находится в столбце даты.

+0

+1: Лучше явно преобразовать, если фактически не исправить тип данных для рассматриваемого столбца. –