У меня есть проект при движении для Программы телепередач, названной mytvguide в базе данных - я использую PHPMyAdmin. Это - структура для одной таблицы, которую называют tvshow1:
Field Type
channel varchar(255)
date date No
airdate time No
expiration time No
episode varchar(255)
setreminder varchar(255)
но не уверено, как получить ДАТУ, ВРЕМЯ для работы со сценарием разбиения на страницы (ниже сценарий, который работает на версию с ДАТОЙ И ВРЕМЕНЕМ): http://pastebin.com/6S1ejAFJ
Однако, хотя ДАТА И ВРЕМЯ, каждый работает - это показывает программы что воздух в сам день как это:
Programme 1 showing on Channel 1 2:35pm "Episode 2" Set Reminder
Programme 1 showing on Channel 1 May 26th - 12:50pm "Episode 3" Set Reminder
Programme 1 showing on Channel 1 May 26th - 5:55pm "Episode 3" Set Reminder
но я не совсем уверен, как копировать это для полей, которые используют ДАТУ, функции ВРЕМЕНИ, как замечено выше.
Отвечая на заголовок вашего вопроса: Тип
datetime
очень удобен, и вы всегда можете отформатировать это поле, используя функции date () или time (), чтобы получить соответствующую часть, или любую другую функцию из огромный список
Что касается тела вопроса, тип поля не имеет ничего общего с разбивкой на страницы. Есть конкретный вопрос?
Если вы когда-нибудь захотите масштабировать базу данных, вы должны следовать одному важному правилу: избегайте построчных функций, таких как if
, coalescse
, case
и да, date ()
и time ()
.
Атрибут (столбец) в таблице должен быть наименьшей единицей, которую вы обрабатываете. Если вам нужно искать по дате, сохраните дату отдельно. Не объединяйте его в дату и время, где вам нужно будет извлечь его в операторы select
.
Люди, которые объединяют атрибуты в одно поле, например, дату в дату и время, или, ужас ужасов, список, разделенный запятыми, отдельные части которого вы хотите проверить, оказывают себе и своим преемникам огромную медвежью услугу.
Обычно лучше вставлять два поля вместе (например, дату и время в datetime для сценария разбиения на страницы), чем пытаться разделить другим способом (для других целей).
Конечно, если вы никогда не собираетесь использовать дату и время отдельно в своих запросах или если вы ожидаете, что ваша база данных останется небольшой, не стесняйтесь игнорировать мою тираду: -)
В MySQL вы можете использовать DATE_FORMAT
(см. руководство )
Например:
SELECT DATE_FORMAT(airdate, "%d %M %Y - %H:%i") FROM programs WHERE ....
В противном случае вы просто извлекаете значение, как оно есть, и изменяете его со временем / функция даты, предоставляемая PHP