2012-01-12 2 views
0

Я имею проблему в MySQL Query, у меня есть дата сохраняется в базе данных в этом формате:Как форматировать поле даты в mysql?

Ср, 26 октября 2011 1:25:35 EDT

Я хочу, чтобы отсортировать строки по дате, но этот формат даты не позволяет мне это делать. Я пробовал функцию Date_FORMAT AND STR_TO_DATE, но не смог заставить ее работать, не могли бы вы помочь мне решить эту проблему?

ответ

0

Предполагая, что вы изменили свои таблицы, так что у вас есть поле оригинальной даты («olddate») и хотите поставить переформатировать «родной» даты в новое поле («newdate»), то:

UPDATE yourtable 
SET newdate = STR_TO_DATE(olddate, '%a, %e %b %Y %H:%i:%s') 

Однако MySQL не хранит информацию о часовом поясе в своих полях даты/времени, поэтому вам нужно будет преобразовать материал EDT в любой желаемый TZ (UTC?).

После преобразования в родной формат, вы могли бы сделать ваши сортировки с:

SELECT ... 
... 
ORDER BY YEAR(newdate) 
+0

я сделал запрос только с помощью функции MySQL STR_TO_DATE и он действительно работал. Спасибо за помощь. –

0

Этот формат представляет собой простой текст для MySQL, и у вас должен быть другой номер datetime или timestamp с теми же данными, но то, что MySQL мог бы понять.

  1. добавить новый столбец
  2. использовать PHP, чтобы strtotime фактическую строку и повторить это значение для нового столбца.
  3. ...
  4. прибыль!
Смежные вопросы