Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Корректная сортировка по дате

Сообщения:  [1-10]   [11-16] 

 
 автор: kosta_in_net   (20.01.2012 в 03:00)   письмо автору
 
   для: cheops   (20.01.2012 в 02:28)
 

Не обратил внимание на нестандартный формат даты у человека... Как рах изходя из того, что могут возникнуть подводные камни, писал про дамп данных перед преобразованием.
Но для преобразования в том же админе достаточно выполнить запрос:
UPDATE basename SET date=CONCAT(SUBSTRING(date,7,4),SUBSTRING(date,3,4),SUBSTRING(date,1,2),SUBSTRING(date,13,6))

  Ответить  
 
 автор: cheops   (20.01.2012 в 02:28)   письмо автору
 
   для: kosta_in_net   (20.01.2012 в 00:20)
 

Смысл в том, что дату вида "25-11-2011 в 07:22" нужно трансформировать в "2011-11-25 07:22", это действительно лучше скриптом делать... ну можно без лишних столбцов, сначала произвести трансформацию, а затем сменить тип столбца при помощи ALTER TABLE. Теоретически можно осуществить преобразование лишь средствами MySQL, но запрос получиться довольно монструозный.

  Ответить  
 
 автор: kosta_in_net   (20.01.2012 в 00:20)   письмо автору
 
   для: cheops   (19.01.2012 в 23:41)
 

Сколько людей - столько и мнений

  Ответить  
 
 автор: kosta_in_net   (20.01.2012 в 00:17)   письмо автору
 
   для: Василий   (19.01.2012 в 17:01)
 

Если поле имеет такие параметры:
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Дата при добавлении и обновлении вставляется автматически.
При отсутствии DEFAULT CURRENT_TIMESTAMP, временную метку при добавлении нужно формировать скриптом

  Ответить  
 
 автор: cheops   (19.01.2012 в 23:41)   письмо автору
 
   для: Василий   (19.01.2012 в 17:01)
 

Лучше по-моему алгоритму идти :)

  Ответить  
 
 автор: Василий   (19.01.2012 в 17:01)   письмо автору
 
   для: kosta_in_net   (19.01.2012 в 13:52)
 

date      varchar(30) 14-11-2011 в 10:15

date1      datetime 0000-00-00 00:00:00


потом удалил date, а date1 переименовал в date

теперь вводим комментарий, но дата и время одни нули

0000-00-00 00:00:00

  Ответить  
 
 автор: kosta_in_net   (19.01.2012 в 13:52)   письмо автору
 
   для: Василий   (18.01.2012 в 22:54)
 

Войди в phpMyAdmin и просто поменяй тип столбца в структуре таблицы. Потерь данных не должно произойти. Но, на всякий случай, можешь для начала дамп сохранить

  Ответить  
 
 автор: cheops   (19.01.2012 в 13:03)   письмо автору
 
   для: Василий   (18.01.2012 в 22:54)
 

Тогда алгоритм следующий:
1. Рядом с существующим, создаем новый столбец типа DATETIME
2. Переносим в него данные, если мало - вручную, если много - при помощи скрипта.
3. Удаляем старый столбец VARCHAR.
4. Присваиваем новому столбцу имя старого столбца

  Ответить  
 
 автор: Василий   (18.01.2012 в 22:54)   письмо автору
 
   для: cheops   (18.01.2012 в 19:54)
 

желательно без потерь

  Ответить  
 
 автор: Aidaho   (18.01.2012 в 20:18)   письмо автору
 
   для: Igorek   (18.01.2012 в 19:47)
 

ну например даты можно вертеть как хочешь, можно вытянуть отдельно день и обозвать его хоть срундельником....
все лучше по моему чем в сабже...

конечно лучше всего в таймстапе, но я например все никак не могу с ним заморочиться и постоянно о нем забываю

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования