![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервер и время [D7, firebird 1.5]
Kabazoo © (2006-01-21 02:17:00)Народ , вопрос следующий ...
Есть база на firebird ...
В одной из таблиц есть поле типа TIME
В клиентском приложении при добавлении записи в таблицу в соответствуещее поле заносится времядобавления записи ...
Вопрос: Если ли какая нють функция , которая позволила бы узнать и записать в таблицу текущее время на самом сервере БД, а не на локальной машине ???
Sergey Masloff (2006-01-21 15:53:00) [1]Да я-то знаю. Просто хотел на это внимание обратить вопрошавшего ;-)
Anatoly Podgoretsky (2006-01-21 14:41:00) [2]Примечание - может использоваться любое опорное время, не обязательно UTC, просто последнее системно и позиционно независимо. Каждый клиент будет видеть свое локальное время, а на сервер опорно. В случае использования UTC серверу не придется беспокоиться ни о времени клиента, ни о его часовом поясе. Если же время должно показываться в независимом формате и одинаково у всех клиентов, то используется системное время на обеих сторонах. Часто время в этом случае показывают в другой форме hh:mm:ss (аббревиатура и + смещене), для одназначности.
Anatoly Podgoretsky (2006-01-21 14:36:00) [3]Sergey Masloff (21.01.06 13:35) [11]
А ему и не надо знать, а то может что у двух рядом сидящих клиентов время может сильно отличаться. Время надо устанавливать на сервере и на клиенте (или на сервере) приводить к локальному. Тогда будет одназначность и точность.
Sergey Masloff (2006-01-21 13:35:00) [4]Anatoly Podgoretsky © (21.01.06 12:15) [9]
>Очень просто, не надо хранить в локальном времени, для этого >использовать UTC
Да это понятно. Только знает ли сервер что за время у клиента?
Vemer (2006-01-21 12:24:00) [5]To Sergey Masloff
автор пишет:
"текущее время на самом сервере БД , а не на локальной машине"
To Kabazoo
Имелось в виду открывать/редактировать во время вставки строки.
Потом можешь менять его как хочешь.
Только опять-же - если у тебя есть точное время выполнения операций по серверу - зачем его менять?
Anatoly Podgoretsky (2006-01-21 12:15:00) [6]Sergey Masloff (21.01.06 11:30) [5]
Очень просто, не надо хранить в локальном времени, для этого использовать UTC
mr.il (2006-01-21 11:56:00) [7]Благодарю.
Kabazoo (2006-01-21 11:37:00) [8]Vemer ©
Это время нельзя будет отредактировать позже(при необходимости) , я правильно понимаю ???
Sergey Masloff (2006-01-21 11:31:00) [9]mr.il © (21.01.06 07:41) [2]
'NOW' устаревшая фича поддерживаемая для backward совместимости. Надо использовать CURRENT_XXX
Sergey Masloff (2006-01-21 11:30:00) [10]Vemer © (21.01.06 10:08) [4]
Как насчет случая когда сервер и клиент в разных часовых поясах?
Vemer (2006-01-21 10:08:00) [11]Зачем напрягать клиентскую часть, когда это можно делать автоматом на серваке.
Создай новое поле типа Тиме с опцией Default = Current_Time.
Сервер сам будет заносить туда время.
Если конечно ты не будешь пытаться редактировать его нa клиенте :).
mr.il (2006-01-21 09:17:00) [12]Тока вроде-бы в двойных кавычках, а то он попытается как строку вставить.
mr.il (2006-01-21 07:41:00) [13]в триггере BeforeInsert пишеш:
твое_поле.new = 'now';
Fay (2006-01-21 04:04:00) [14]2 Kabazoo (21.01.06 2:17)
CURRENT_TIME, что ли?