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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Неопределенность точной даты, или вывод даты в виде квартала и числа.
 
 автор: cyberface   (29.08.2006 в 10:06)   письмо автору
 
 

Есть проблема - создаю базу игр, естественно, у каждой игры есть дата релиза. У некоторых она известа с точностью до числа месяца, у других лишь заявлен квартал или месяц выхода.
В таблице для даты релиза я отвел специальное поле типа DATETIME.
Игру с заранее известной точной датой выхода туда впихнуть не сложно, а вот как быть, если мне нужно вставить запись с игрой, у которой известен лишь квартал или месяц выхода, и как потом оттуда извлечь эти данные?

   
 
 автор: cheops   (29.08.2006 в 11:18)   письмо автору
 
   для: cyberface   (29.08.2006 в 10:06)
 

Лучше заведите ещё одно текстовое поле - там где оно пустое - пользуйтесь DATETIME, там, где оно заполнено - содержимым текстового поля, при этом в DATETIME помещайте примерную дату, чтобы сортировка работала.

   
 
 автор: cyberface   (29.08.2006 в 14:30)   письмо автору
 
   для: cheops   (29.08.2006 в 11:18)
 

А как вы смотрите на на следующий вариант:
Завести поле dateformat типа ENUM с содержанием exact, quarter, month, которое хранит сведенья о том как нужно выбирать данные, ну и выбирать дату следующим образом.


SELECT
CASE   dateformat
  WHEN 'exact'     THEN DATE_FORMAT(realise_date, '%e %M %Y')
  WHEN 'quarter' THEN QUARTER(realise_date)
  WHEN 'month'   THEN DATE_FORMAT(realise_date, '%M %Y')
END
FROM games


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

   
 
 автор: Trianon   (29.08.2006 в 14:35)   письмо автору
 
   для: cyberface   (29.08.2006 в 14:30)
 

тогда уж

SELECT 
CASE   dateformat 
  WHEN 'exact'     THEN DATE_FORMAT(realise_date, '%e %M %Y') 
  WHEN 'quarter' THEN CONCAT(QUARTER(realise_date), ' quarter of ',   DATE_FORMAT(realise_date, '%Y')) 
  WHEN 'month'   THEN DATE_FORMAT(realise_date, '%M %Y') 
END 
FROM games 

но идея симпатичная. )

   
 
 автор: cyberface   (29.08.2006 в 14:37)   письмо автору
 
   для: Trianon   (29.08.2006 в 14:35)
 

Действительно. =) Что-то я не подумал, что вместе с кварталом нужно еще и год выводить :)

   
Rambler's Top100
вверх

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