Формат даты: от varchar до целого

0

У меня есть дата в формате "jan 2011", но если я использую "jan 2011" и "mar 2011", это дает неправильные месяцы поэтому я хочу преобразовать varchar в числовой формат, чтобы я мог использовать между запросом в mysql заранее спасибо

Теги:
phpmyadmin

2 ответа

0

вы должны преобразовать столбец столбца varchar в дату, что более безопасно. (varchar приводит к склонности к ошибкам) ​​

используйте find_in_set, чтобы сделать сопоставление

select find_in_set('jan', 'jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec');

так

select 
find_in_set(
  substring_index(col, ' ', 1),
  'jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec'
)...
0

Добавьте столбец реальной даты в таблицу:

ALTER TABLE the_table 
 ADD COLUMN the_real_date_column DATE;

Используйте STR_TO_DATE, чтобы вставить значение даты в этот столбец:

UPDATE the_table  
   SET the_real_date_column = STR_TO_DATE(the_bad_date_column, '%b %Y');

STR_TO_DATE будет вставлять 0 для каждого не заданного значения - в этом случае - дневную часть даты. Таким образом, вы можете увеличить день до 1 следующим образом:

UPDATE the_table
   SET the_real_date_column = the_real_date_column + 1;

Затем вы можете запросить столбец даты нормально, используйте BETWEEN, все, что нужно. Если вы видите старый столбец, вы можете его удалить следующим образом:

ALTER TABLE the_table 
DROP COLUMN the_bad_date_column;

Ещё вопросы

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