PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Restituisci il timestamp Unix in PostgreSQL

In PostgreSQL, possiamo usare extract() funzione insieme a epoch argomento per restituire il timestamp Unix.

Possiamo restituire il timestamp Unix in base alla data/ora corrente, oppure possiamo ottenerlo in base a un'altra data/ora specificata.

Il timestamp Unix (noto anche come Unix Epoch time, Unix time o POSIX time) è il numero di secondi trascorsi dalle 00:00:00 di giovedì 1 gennaio 1970, Coordinated Universal Time (UTC).

Ottieni il timestamp Unix corrente

Ecco un esempio di come ottenere il timestamp Unix dalla data e dall'ora correnti:

SELECT extract(epoch from now());

Risultato:

1650152298.430101

Valori di data

Ecco un esempio di come ottenere il timestamp Unix da una date specificata valore:

SELECT extract(epoch from date '2030-08-15');

Risultato:

1912982400

Se utilizzato con date valori, epoch restituisce il numero nominale di secondi dal 1970-01-01 00:00:00, indipendentemente dal fuso orario o dalle regole dell'ora legale.

Valori timestamp

Ecco un esempio di come ottenere il timestamp Unix da un timestamp specificato valore:

SELECT extract(epoch from timestamp '2030-08-15 03:30:45');

Risultato:

1912995045

Se utilizzato con timestamp valori, epoch restituisce il numero nominale di secondi dal 1970-01-01 00:00:00, indipendentemente dal fuso orario o dalle regole dell'ora legale. È lo stesso di quando si utilizza date valori.

Timestamp con valore del fuso orario

Ecco un esempio di come ottenere il timestamp Unix da un timestamp with time zone specificato valore:

SELECT extract(
    epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
    );

Risultato:

1913023845.12

Se utilizzato con timestamp with time zone valori, epoch restituisce il numero di secondi trascorsi dal 1970-01-01 00:00:00 UTC (negativo per timestamp precedenti)

Intervalli

Possiamo anche ottenere un timestamp Unix da un interval valore:

SELECT extract(epoch from interval '7 days 2 hours');

Risultato:

612000

Se utilizzato con interval valori, epoch restituisce il numero totale di secondi nell'intervallo.