sql >> Databáze >  >> RDS >> Mysql

Převod časových razítek v Unixu se liší v Mysql a Oracle

Unixové časové razítko je v sekundách od 1970-01-01 00:00:00 UTC což je ve skutečnosti 1970-01-01 01:00:00 ve vašem místním časovém pásmu (nebo časovém pásmu, kde se nachází váš server MySQL). Vypadá jako FROM_UNIXTIME bere to v úvahu.

Pro Oracle můžete použít tuto funkci:

FUNCTION UnixTime2Timestamp(UnixTime IN NUMBER) RETURN TIMESTAMP IS
BEGIN
    RETURN (TIMESTAMP '1970-01-01 00:00:00 UTC' + UnixTime * INTERVAL '1' SECOND) AT LOCAL;
END UnixTime2Timestamp;

Předpokládám, že pokud chcete získat čas UTC v MySQL, musíte spustit

select 
   CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC') 
from dual;



  1. MySQL – Mám používat vícesloupcové primární klíče na každé podřízené tabulce?

  2. Jak mohu použít dotaz se zástupným symbolem uvnitř uvozovek? (perl / postgresql)

  3. Jak vybrat první řádek pro každou skupinu v MySQL?

  4. Fulltextové vyhledávání MySQL neodpovídá