powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / current_timestamp
6 сообщений из 6, страница 1 из 1
current_timestamp
    #34262366
akimovp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые.

Подскажите плиз как такое может быть.

Две транзакции
-- в первой увеличиваю значение поля t1.balance где t1.id=1 на значение допустим 5.
Затем присваиваю в другой таблице полю значение t2.dt=current_timestamp, t2.leftBalance=t1.balance где t2.id=2.
-- вторая транзакция ждет пока снимется блокировка с t2.balance где t1.id=1 и тоже увеличивает его на 5 и затем присваиваем полю значение t2.dt=current_timestamp,t2.leftBalance=t1.balance где t2.id=3.

в результате получаем
t2.balance где t2.id=2 < t2.balance где t2.id=3
а
t2.dt где t2.id=2 > t2.dt где t2.id=3

то есть current_timestamp вызванная позднее вернула меньший результат чем первый вызов current_timestamp.
...
Рейтинг: 0 / 0
current_timestamp
    #34262507
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kak to u Vas nemnogo putano vse napisano.

No delo v tom, chto current_timestamp vsegda ukazyvaet na nachalo transactsii i ne meniatsia vnutri nee. Tak chto esli u vas transactsia dlitsia nedeliu, to current_timestamp v kontse transactsii budet imet' to je znachenie chto v ee nachale -- tak trebuet SQL standart.
...
Рейтинг: 0 / 0
current_timestamp
    #34262750
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если вы хотите время именно текущее("моментальное") время, а не время начала транзакции, используйте now()
...
Рейтинг: 0 / 0
current_timestamp
    #34262779
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JelisА если вы хотите время именно текущее("моментальное") время, а не время начала транзакции, используйте now()
Vy nepravy http://www.postgresql.org/docs/8.2/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
Iz doki:

now() is a traditional PostgreSQL equivalent to CURRENT_TIMESTAMP. transaction_timestamp() is likewise equivalent to CURRENT_TIMESTAMP, but is named to clearly reflect what it returns. statement_timestamp() returns the start time of the current statement (more specifically, the time of receipt of the latest command message from the client). statement_timestamp() and transaction_timestamp() return the same value during the first command of a transaction, but may differ during subsequent commands. clock_timestamp() returns the actual current time, and therefore its value changes even within a single SQL command. timeofday() is a historical PostgreSQL function. Like clock_timestamp(), it returns the actual current time, but as a formatted text string rather than a timestamp with time zone value.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
wsdb=# begin;
BEGIN
wsdb=# select now();
              now              
-------------------------------
  2007 - 01 - 17   15 : 32 : 56 . 468852 + 00 
( 1  row)

wsdb=# select now();
              now              
-------------------------------
  2007 - 01 - 17   15 : 32 : 56 . 468852 + 00 
( 1  row)

wsdb=# select statement_timestamp();
      statement_timestamp      
-------------------------------
  2007 - 01 - 17   15 : 33 : 02 . 754362 + 00 
( 1  row)

wsdb=# select statement_timestamp();
      statement_timestamp      
-------------------------------
  2007 - 01 - 17   15 : 33 : 03 . 807464 + 00 
( 1  row)
...
Рейтинг: 0 / 0
current_timestamp
    #34262855
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упс, извините, погорячился :-)
Конечно же timeofday() а не now()!
А transaction_ и clock_ появились только в 8.2.
...
Рейтинг: 0 / 0
current_timestamp
    #34262955
akimovp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JelisУпс, извините, погорячился :-)
Конечно же timeofday() а не now()!
А transaction_ и clock_ появились только в 8.2.
Спасибо, разъяснили чайнику.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / current_timestamp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]