@pgsql

Страница 406 из 1062
targitaj
17.07.2017
10:40:41
Но экземпляр в системе установлен один

Mike Chuguniy
17.07.2017
10:42:40
Ну очевидно процессы разные
Вы так больше не пугайте. А то из ваших сообщений следует, что запущен один демон на несколько баз.

Fike
17.07.2017
10:48:19
есть хаятушник чтобы быренько сделать постгерсс на 50к коннектов с сек и столько же записей?
Без спецовой прокси (пгбаунсер?) это вряд ли возможно, система на таком количестве процессов вероятно загнется

Google
Anton
17.07.2017
10:51:24
В этом даже смысла нет в 99% случаев

ибо 100% утилизации соединений не будет

pgbouncer самое адекватное если не требуется логики в middleware

Leonid
17.07.2017
11:00:31
люди, а как-то можно из поля time получить timestamp?

на стороне сервера

Leonid
17.07.2017
11:11:17
мне бы на sql

Артур
17.07.2017
11:11:18
sql, python, c++, php

мне бы на sql
понял, минуту

Leonid
17.07.2017
11:11:55
т.е. у меня есть поле типа time, а я хочу что=то вроде select '09:00:00'::timestamp'

Артур
17.07.2017
11:12:01
формат исходного поля дай и конечного

точнее сюда напиши как должно выглядеть

Google
Leonid
17.07.2017
11:12:52
не, так я тоже могу. мне чтобы без оберток

сделать функцию, которая возьмет поле как строку и потом распарсит - это не вопрос

я просто предполжил, что есть штатный способ

Артур
17.07.2017
11:14:04
Юзал что-то типа того: `to_timestamp(_datetime, 'YYYY-MM-DD HH24:MI:SS');`

Сейчас погляжу, сработает ли это ? Она у меня в хранимке лежит :)

https://www.postgresql.org/docs/9.6/static/functions-datetime.html Вот здесь вроде описаны варианты

Leonid
17.07.2017
11:19:32
спасибо!! буду копать

Артур
17.07.2017
11:20:50


чё копать то?

Anatoliy
17.07.2017
11:22:18
SELECT (CURRENT_DATE || ' ' || CURRENT_TIME)::timestamp;

Можно так

Артур
17.07.2017
11:23:50
SELECT (CURRENT_DATE || ' ' || CURRENT_TIME)::timestamp;
ему по строке же надо. и не факт что текущий день

Anatoliy
17.07.2017
11:24:10
Ну строка нормально закастится)

Kirill
17.07.2017
11:24:40
И неизвестно какой часовой пояс. Недавно открыл для себя что timestamptz::date не иммутабельна

Anatoliy
17.07.2017
11:25:26
можно делать at timezone (если мне память не изменяет)

Артур
17.07.2017
11:25:46
Ну я так текущее время в секундах и храню ? (date_part('epoch'::text, now()) * (1000)::double precision)

наверное это плохо :)

Anatoliy
17.07.2017
11:26:08
это ужасно

Старый
17.07.2017
11:27:47
Без спецовой прокси (пгбаунсер?) это вряд ли возможно, система на таком количестве процессов вероятно загнется
у меня кассандра пишет по 70к запросов в сек, после прохода пользователя через процедуру, некоторые вещи пишутся в постгресс

Google
Артур
17.07.2017
11:28:00
просто когда-то, когда на mysql сидел, datetime толи по моему непониманию, то ли по причине ошибки в генах, то ли просто потому что это MySQL - даже если отправлять по GMT всеравно смещение времени происходит на разных серверах и вот тогда я как-то привык именно так фиксировать дату

хотя, когда не критично храню в timestamp

но такое редко. Зачастую критично, чтобы дата была верной.

Leonid
17.07.2017
11:31:35
в итоге пришлось таки возвращать в ::text и конвертить, потому как тут у меня свой типа NullTime (это в Go). К счастью, это справочник, так что нагрузит не слишком, я надеюсь.

Артур
17.07.2017
11:33:18
@Bereznyak просвяти пожалуйста меня. Как на 100% гарантировать timestamp в gmt чтобы не было риска записать криво?

мне это важно

Anatoliy
17.07.2017
11:34:25
=> SELECT NOW() AT TIME ZONE 'gmt'; timezone ---------------------------- 2017-07-17 11:34:07.001962 (1 row)

Darafei
17.07.2017
11:34:28
Z в конце + парсить как timestamptz

Артур
17.07.2017
11:34:57
нет, сорри, не отвечай, сначала доку перечитаю

Darafei
17.07.2017
11:36:06
Z - это iso8601 указатель на UTC

парсер timestamptz парсит таймзоны, учитывая Z

Darafei
17.07.2017
11:37:08
gis=# select '2017-07-17 11:34:07Z'::timestamptz; timestamptz ------------------------ 2017-07-17 14:34:07+03 (1 row)

عاصم بن حارث
17.07.2017
11:37:43
?

Артур
17.07.2017
11:38:16
gis=# select '2017-07-17 11:34:07Z'::timestamptz; timestamptz ------------------------ 2017-07-17 14:34:07+03 (1 row)
И тогда какой бы часовой пояс не был на сервере или как бы убого дамп не был развернут timestamp останется тем же?

Я понимаю что вопрос звучит глупо, но это не так :)

Darafei
17.07.2017
11:38:35
да, ведь ты явно протаскиваешь таймзону

опасность таит timestamp: gis=# select '2017-07-17 11:34:07Z'::timestamp; timestamp --------------------- 2017-07-17 11:34:07 (1 row)

Anatoliy
17.07.2017
11:40:13
Ну он по идее сконвертит в локаль базы

Darafei
17.07.2017
11:41:20
ну, там на комбинациях начинаются интересные эффекты: gis=# select ('2017-07-17 11:34:07Z'::timestamptz)::timestamp; timestamp --------------------- 2017-07-17 14:34:07 (1 row)

Google
Darafei
17.07.2017
11:41:55
отсюда растут рекомендации никогда не использовать timestamp, а всегда timestamptz :)

Артур
17.07.2017
11:42:27
вот только же решил все make_date и update_date переконвертить в timestamptz А теперь вот даже в растерянности.

Lev
17.07.2017
11:43:46
если очень страшно за настройки базы, то можно в запросах явно спрашивать select ('2017-07-17 11:34:07Z'::timestamptz) at time zone 'utc'; timezone --------------------- 2017-07-17 11:34:07 (1 row)

Артур
17.07.2017
11:45:14
тогда вот еще вопрос чем int хуже timestamp?

нечитаебелен типа?

Darafei
17.07.2017
11:46:21
зависит, как ты пользуешься базой

Anatoliy
17.07.2017
11:46:22
ну во-первых, он нечитабелен человеком)

Во-вторых, его всегда надо кастить

Darafei
17.07.2017
11:47:32
если ты пользуешься базой не как объектно-реляционной системой управления базой данных, а как тупым хранилищем, то храни байты как тебе удобнее

Admin
ERROR: S client not available

Anatoliy
17.07.2017
11:47:48
Плюс когда-нибудь подвинут часы

Артур
17.07.2017
11:48:02
сейчас вопросы полезут как пирожки!

а какая связь реляционной базы с timestamp?

это же просто тип данных

Darafei
17.07.2017
11:49:17
тебе важна семантика на селектах? :)

Артур
17.07.2017
11:49:25
ясно

Dmitry
17.07.2017
11:49:33
Во-вторых, его всегда надо кастить
Кого надо кастить? timestamp? Нет. Не слышали...

Anatoliy
17.07.2017
11:49:42
unixtime

Darafei
17.07.2017
11:50:07
а вообще спор давний

вот в постгисе в третью-четвёртую координату складывают время иногда

Google
Darafei
17.07.2017
11:50:49
и у него нет никакого особенного понятия, что это время, и там просто число в юникстайме

Dmitry
17.07.2017
11:50:59
Пространственно-временной континуум? ))

Lev
17.07.2017
11:51:12
ато

Артур
17.07.2017
11:52:20
а вообще спор давний
мне это нужно для понимания, не ради спора. потому что если структуру выложу в паблик это знание будут поглощать совсем начинающие (в интернете же гуглом пользуются?) и то как они запомнят, так и дальше пойдет

Lev
17.07.2017
11:52:28
там даже половина функций умеет это время не замечать при рассчёте геометрического пересечения.

Артур
17.07.2017
11:55:37
правильно дефолт для поля make_time пишу? (NOW() AT TIME ZONE 'gmt' || 'Z')::TIMESTAMPTZ

Andrey
17.07.2017
11:55:50
все типы кроме бинарного введены, чтобы можно было пользоваться удобными функциями над этими типами.
Не соглашусь. Есть ещё много факторов: операторы, занимаемое место, специфичные для типов индексы.

Артур
17.07.2017
11:56:55
ты хотел просто now() ?
ну в нулевом часовом поясе

Darafei
17.07.2017
11:57:25
часовой пояс приклеивается при выводе из timestamptz

Lev
17.07.2017
11:57:37
Не соглашусь. Есть ещё много факторов: операторы, занимаемое место, специфичные для типов индексы.
операторы это тоже функции. Индексы над функциями. А место ты сам определяешь, когда кладёшь данные.

Andrey
17.07.2017
11:59:42
Я имел в виду, что timestamp занимает 8 байт, а дата и время в виде текста как минимум 19.

Anatoliy
17.07.2017
12:00:10
Это экономия на спичках

Lev
17.07.2017
12:00:36
А бинарный тип не обязан хранить текст. Там может лежать такая же структура.

Andrey
17.07.2017
12:01:01
Ну ничего себе "спички". В 2.5 раза больше.

Айтуар
17.07.2017
12:01:13
Это экономия на спичках
ага умножить на пару сотень млн и будет не спичка, а лес ))

Anatoliy
17.07.2017
12:01:40
Ну ничего себе "спички". В 2.5 раза больше.
Ну давайте вместо й писать и, тоже экономия в 2 раза!

Anatoliy
17.07.2017
12:02:07
бреве отдельное место занимает (не всегда)

Andrey
17.07.2017
12:02:08
Ну давайте вместо й писать и, тоже экономия в 2 раза!
Извините, но по-моему, вы какие-то глупости говорите.

Страница 406 из 1062