Превращение TIMESTAMP SQL в 12-часовое время - PullRequest
1 голос
/ 06 февраля 2009

Я пишу приложение, которое позволяет людям планировать вещи на определенное время, а затем отображает их. Время события сохраняется в базе данных как ВРЕМЯ SQL, потому что есть вещи, которые я делаю в БД, которым нужна эта структура.

Однако на странице вывода я хочу, чтобы время было в формате 12:00 утра / вечера, но я не хочу запускать скрипт преобразования каждый раз, когда перехожу через цикл вывода базы данных. Я не хочу этого:

while (database loop){
convert to clean time
output event info, with clean time
}

потому что я думаю, что это слишком много напряжения и ненужно. Есть ли способ сделать это лучше, если не хранить время в БД дважды (один раз в 24 часа и один раз в 12)?

Ответы [ 4 ]

1 голос
/ 06 февраля 2009

для сервера sql используйте конвертирование в стиле 100

select convert(varchar(30),getdate(),100)

6 февраля 2009 13:44

1 голос
/ 06 февраля 2009

Вы не указываете, какая СУБД и какая платформа, но большинство современных из них имели бы какую-либо функцию CONVERT или CAST, которую вы могли бы использовать, либо на уровне БД, либо при обработке вашего вывода.

0 голосов
/ 06 февраля 2009

Выходная страница - это ваш уровень представления. Не путайте вопросы презентации с уровнем базы данных. Особенно не вызывайте денормализацию только ради презентации.

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

Почему бы и нет? В зависимости от того, какой язык вы используете, это не должно быть больше работы, чем просто отправка времени через операцию strftime (), прежде чем добавить его на страницу. Это не будет медленным.

0 голосов
/ 06 февраля 2009

Преобразование времени и даты в базе данных занимает очень мало ресурсов и будет намного быстрее, чем в PHP или JavaScript. Я бы использовал функции даты и времени, предоставляемые вашей базой данных, например, DATE_FORMAT(date,format) в mySql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...