programing

PostgreSQL: Unix epoch에서 현재까지 변환하는 방법은 무엇입니까?

skycolor 2023. 5. 7. 11:19
반응형

PostgreSQL: Unix epoch에서 현재까지 변환하는 방법은 무엇입니까?

명세서는 저에게 날짜와 시간을 알려줍니다.

날짜만 반환하고 시간은 반환하지 않도록 문을 수정하려면 어떻게 해야 합니까?

SELECT to_timestamp( TRUNC( CAST( epoch_ms AS bigint ) / 1000 ) );

사용자to_timestamp기능을 수행한 다음 타임스탬프를 다음으로 캐스팅합니다.date

 select to_timestamp(epoch_column)::date;

더 많은 표준을 사용할 수 있습니다.cast대신에::

select cast(to_timestamp(epoch_column) as date);

자세한 정보:

/* Current time */
 select now();  -- returns timestamp

/* Epoch from current time;
   Epoch is number of seconds since 1970-01-01 00:00:00+00 */
 select extract(epoch from now()); 

/* Get back time from epoch */
 -- Option 1 - use to_timestamp function
 select to_timestamp( extract(epoch from now()));
 -- Option 2 - add seconds to 'epoch'
 select timestamp with time zone 'epoch' 
         + extract(epoch from now()) * interval '1 second';

/* Cast timestamp to date */
 -- Based on Option 1
 select to_timestamp(extract(epoch from now()))::date;
 -- Based on Option 2
 select (timestamp with time zone 'epoch' 
          + extract(epoch from now()) * interval '1 second')::date; 

당신의 경우:

 select to_timestamp(epoch_ms / 1000)::date;

PostgreSQL 문서

select to_timestamp(cast(epoch_ms/1000 as bigint))::date

나를 위해 일했습니다.

Postgres 10에서:

SELECT to_timestamp(CAST(epoch_ms as bigint)/1000)

위 솔루션이 Postgre의 최신 버전에서 작동하지 않습니다.SQL. 숫자로 저장되는 에포크 시간을 변환하는 방법을 찾았습니다. int 열 유형은 Postgre에 있습니다.SQL 13:

SELECT TIMESTAMP 'epoch' + (<table>.field::int) * INTERVAL '1 second' as started_on from <table>;

자세한 설명은 여기에서 확인할 수 있습니다. https://www.yodiw.com/convert-epoch-time-to-timestamp-in-postgresql/ #more-details

이것은 나에게 잘 맞습니다.

SELECT t.*,
   to_timestamp(cast(t.prev_fire_time/1000 as bigint)) as prev_fire_time,
   to_timestamp(cast(t.next_fire_time/1000 as bigint)) as next_fire_time,
   to_timestamp(cast(t.start_time/1000 as bigint)) as start_time
FROM public.qrtz_triggers t;

GNU를 사용한 epoch 이후의 시간(초)date:

$ date +%s.%N
1627059870.945134901

이것은 Postgre와 함께 작동합니다.SQL 11:

# select to_timestamp (1627059870.945134901);
         to_timestamp          
-------------------------------
 2021-07-23 19:04:30.945135+02
(1 row)

# select to_timestamp (1627059870.945134901)::date;
 to_timestamp 
--------------
 2021-07-23
(1 row)

언급URL : https://stackoverflow.com/questions/16609722/postgresql-how-to-convert-from-unix-epoch-to-date

반응형