Формат даты: от varchar до целого - PullRequest
0 голосов
/ 14 января 2011

У меня есть дата в формате, например, «Январь 2011», но если я использую «Январь 2011» и «Март 2011», это дает неправильные месяцы поэтому я хочу преобразовать varchar в числовой формат, чтобы я мог использовать между запросами в MySQL заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 января 2011

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

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;
0 голосов
/ 14 января 2011

Вы должны преобразовать столбец 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'
)...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...