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

Форум MySQL

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

 

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

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

тема: Точное системное время
 
 автор: Anarchy   (23.09.2009 в 14:52)   письмо автору
 
 

Здравствуйте...
Возникла проблема, из-за которой необходимо запросом получить время из базы данных с точностью меньше секунды (хотя бы до 100 мс).
В описании временных функций, везде указана минимальная точность до секунд. Но может быть есть какой нибудь другой способ, подскажите пож-та.

  Ответить  
 
 автор: Trianon   (23.09.2009 в 15:00)   письмо автору
 
   для: Anarchy   (23.09.2009 в 14:52)
 

Стандартные типы представления даты/времени в большинстве распространенных СУБД хранят время с точностью до секунды.
Можно самостоятельно хранить время с любой необходимой Вам точностью, как число.
Соответственно, и все необходимые преобразования придется делать самому.

  Ответить  
 
 автор: Anarchy   (23.09.2009 в 16:12)   письмо автору
 
   для: Trianon   (23.09.2009 в 15:00)
 

Меня бы устроил такой вариант, но у меня нет представления как такое можно реализовать.
Приходит на ум только сторонняя программа, которая с интервалом, к примеру 10 раз в секунду, выполняет запрос на обновление времени. Правда вариант описанный мною я считаю не рациональным. Может быть подскажете, как можно реализовать такую систему попроще.

  Ответить  
 
 автор: Trianon   (23.09.2009 в 16:41)   письмо автору
 
   для: Anarchy   (23.09.2009 в 16:12)
 

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

Зачем?

>как можно реализовать такую систему попроще.

Я как-то перестал понимать цель задачи.

  Ответить  
 
 автор: Anarchy   (23.09.2009 в 17:07)   письмо автору
 
   для: Trianon   (23.09.2009 в 15:00)
 

Прошу прощения, я невнимательно прочитал ваш ответ.

>Стандартные типы представления даты/времени в большинстве распространенных СУБД >хранят время с точностью до секунды.
>Можно самостоятельно хранить время с любой необходимой Вам точностью, как число.
>Соответственно, и все необходимые преобразования придется делать самому.

Этим ответом вы предложили мне способ хранения даты в виде числа.
Но мне не нужно хранить дату в базе данных. Мне нужна какая либо функция вида NOW(), LOCALTIMESTAMP() или что нибудь подобное. Которая вернула бы текущее время с точностью выше секунды. Функции описанные выше, возвращают время с точностью до секунды (миллисекунды обнуляются), потому они мне и не подходят.
А по поводу хранения времени в базе данных, то в MySQL проблем с точностью времени нету.

  Ответить  
 
 автор: Trianon   (23.09.2009 в 17:10)   письмо автору
 
   для: Anarchy   (23.09.2009 в 17:07)
 

Другими словами, Вы пытаетесь использовать сервер СУБД в качестве сервера точного времени.
Мне добавить нечего.

UPD. Впрочем, нет.
Я могу предложить объяснение, почему функции получения точного времени не реализованы (в отличие от функций преобразования.)
Сервер оперирует объективными прикладными данными.
Оперирует ими с задержкой, связаной с естественной неидеальностью процесса обработки данных.
Это если даже не рассматривать кеширование запросов, отложенное выполнение вставок в таблицы и т.п.
Попытки применять системные отсчеты серверной машины в запросах привели бы лишь к тому, что результат выполнения запросов к БД оказался бы непредсказуем.

  Ответить  
 
 автор: cheops   (23.09.2009 в 15:05)   письмо автору
 
   для: Anarchy   (23.09.2009 в 14:52)
 

База данных, конечно позволяет манипулировать временем вплоть до микросекунд, но при генерации текущего времени реально отчет идет по секундам - все микросекунды обнуляются. Можно ориентироваться на PHP-функцию microtime(), но я бы ей тоже не больно-то доверял в плане точности.

  Ответить  
 
 автор: Trianon   (23.09.2009 в 15:11)   письмо автору
 
   для: cheops   (23.09.2009 в 15:05)
 

>Можно ориентироваться на PHP-функцию microtime(), но я бы ей тоже не больно-то доверял в плане точности.

Уж десятые доли секунды , необходимые автору, она всяко предоставит :)
Другое дело, что для получения времени из базы данных, эта функция как-то ... никак. :))

  Ответить  
Rambler's Top100
вверх

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