Трябва да работя с база данни на postgres 9.4 и искам да работя с клеймо за време. Първият „проблем“ е, че когато създам колона с клеймо за време в postgres, не знам какво прави вътрешно, но когато направя заявка, тя връща „2010-10-30 00:00:00“
За мен времево клеймо е нещо като това 12569537329 (unix времево клеймо).
Казвам това, тъй като е цяло число или плаваща единица, за компютъра е много по-лесно да се справя в сравнение с низ и всяка страна има свой собствен формат на времето, като unix timestamp е число и край на историята.
При заявка от php резултатът е низ, така че трябва да направя куп жонглиране и поради часовата зона, лятното часово време и други неща може нещо да се обърка.
Търсих много и не мога да намеря начин да работя с unix timestamp на postgresql.
Може ли някой да обясни дали има начин или правилният начин да работите и да се доближите възможно най-близо до времевия печат на unix.
АКТУАЛИЗАЦИЯ
Едно нещо, което открих, че ще ми помогне и отне много време, за да открия, че е възможно на postgresql, е промяната на Интервалния изход.
В php интервалът от дати за месеца е 'month' за pg е 'mon' на php той ще разбере mon като понеделник. Мисля, че ако трябва да жонглираш твърде много, го правиш погрешно. С удоволствие postgres ни позволява да променим това поведение за сесия или за постоянно. Така че настройването на intervalstyle
на iso_8601
ще работи като php iso_8601 и ще изведе P1M
gettime()
за своитеtimestamp
s и има отлична поддръжка за часови зони и DST. Конкретизирайте въпроса си с примери и ще получите отговор. - person Patrick   schedule 20.01.2016timestamp
иtimestamp with time zone
. Секундата винаги се съхранява в UTC и може да се показва във всяка часова зона, която желаете, местното време ще бъде правилно. Първият е в същата часова зона като сървъра. Проблемът, който описвате, е по-скоро управление на данни на потребителско ниво, а не свързан с DB. - person Patrick   schedule 20.01.2016