| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Конвертация времени |
| Автор: igorold 16.4.2007, 08:18 |
| необходимо по алгоритму хранить в базе 2 времени : одно в десятичном формате - 2,5 часа другое в формате TIME: 2:30 и необходимо конвертировать время иногда в десятичный формат, иногда наоборот ... поискрм ничего не нашел ... может не умею пользоваться поиском ... какие есть наработки??? |
| Автор: SergeBS 17.4.2007, 07:26 |
| igorold, Нет таких форматов у сервера. Вот и все наработки. Хочешь хранить в извращенном виде - придумывай свое извращенное поле и храни в нем как хочешь. |
| Автор: igorold 17.4.2007, 08:04 | ||
такой "извращенный" вид требуется различным службам ... одни используют десятичный формат, другие - классический ... при создании записи - эти поля должны иметь одинаковое значение, но при правке они потом могут различаться ... от вас не требовалось дать характеристику задаче - изврат или нет ... ваше личное мнение - оно ваше личное и не более ... а если есть математическая или если хотите - программистская задача ... то ее надо решать ... рациональное зерно я в вашем ответе откопал ... спасибо за него ... |
| Автор: Glip 17.4.2007, 10:35 |
| я думаю что хранить надо в формате time поддерживаемом субд, а преобразование делать в клиентской программе. это всего-лишь способ отображения данных |
| Автор: igorold 17.4.2007, 11:22 | ||
согласен одного в другой ... В таком случае хранить лучше в одном формате ... уже храняться у меня оба поля в десятичном формате ... так и оставлю.... тем более в форуме Perl мне подкинули готовое решение для конвертации ... У меня скрипт на перл+MySQL+темплайт-шаблоны .... в шаблоны буду передавать в каком виде надо ... просто большой массив сразу в форму не передашь - предварительно придется конвертить время в каждой записи ... а хотелось все в одном запросе ... значит не судьба ... |
| Автор: SergeBS 17.4.2007, 11:43 | ||
| igorold, Ну ладно, не понравилось слово извращенный - заменю на странный Останется только задача вывода (на экран/на печать) в желаемом формате. Это задача - клиентского приложения. Т.е. - не нужно заставлять сервер заниматься НЕНУЖНОЙ работой.
Сочувствую. Изрядное количество людей тоже путают формат хранения с форматом ввода/вывода/отображения. Но надеюсь, что тип поля все-таки DateTime. |
| Автор: igorold 17.4.2007, 12:24 |
| нет, формат самый, что ни на есть float ... такова была изначально постановка задачи, потому что время измеряется в ДАННОЙ КОНКРЕТНОЙ задаче без секунд и с одним знаком после запятой - 2,5 ... 2 ... 18 ... 1,4 ... потом суммарное время умножается на цену часа и получается сумма ... которая тоже в формате float ... умножте время на число, что у ВАС получиться, уважаемый SergeBS ??? извращений и странностей до сих пор не могу найти ... для меня важнее - реализуема какая-то задача или нет и я всегда пытаюсь ее решить без навешивания ярлычков ... я математик, а не психолог ... |
| Автор: SergeBS 17.4.2007, 14:14 | ||||
igorold,
Ну а я программист. При умножении у меня получится то что я захочу. Как правило получается время. Но могу и число получить. Нет проблем. Просто
Имеем в результате - вместо 1 приведения к формату времени при вводе данных (измерение и ввод данных в СУБД - это две большие разницы): 1. Шаманство с ценой часа. 2. Шаманство с выводом в нужном формате. 3. Шаманство с хранением. Как программист я без криков просто советую, как делать по правилам. Не хотите - как хотите. Продолжайте делать как нравится. Но не надо меня убеждать, что иначе невозможно, а тем более - что иначе - неправильно. В чем проблема? На что обида? Я Вас ни к чему не принуждаю, право слово. Просто попытался подсказать, как можно обойти проблему. |
| Автор: sergejzr 19.4.2007, 12:51 |
| Модератор: вырезал "меряние" датами. Плз подобное впредь только в личку |