Lembre-se de que, se você estiver usando uma estrutura que a armazena em milissegundos (por exemplo, carimbo de data / hora de Java), será necessário dividir por 1000 para obter o tempo Unix correto em segundos.
@JanusTroelsen SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )funciona. TIMESTAMP()não retorna um valor inteiro.
cnvzmxcvmcx
4
Só porque eu fiz isso e fiquei confuso com a saída: o MySQL armazena o tempo do Unix em segundos, enquanto muitas outras estruturas o armazenam em milissegundos (ou seja, o carimbo de data / hora de Java). Portanto, lembre-se de dividir por 1000 se você estiver usando esta função em dados provenientes de algum lugar que use millis no tempo do Unix.
parece claro comparar um tempo unix de um tempo unix. Eu uso SELECT (CAST (DATE_FORMAT (from_unixtime (UNIX_TIMESTAMP (CURRENT_TIMESTAMP))), '% Y-% m-% d') como DATE) <CAST ('2019-05-02' AS DATE)); para comparar datas, substituo 2019-05 * 02 um objeto de data e hora formatado em php. Thnaks.
Mantisse 12/04/19
1
Por favor, não responda desta maneira a uma pergunta diferente da original.
Paweł Stankowski
Isso não responde à pergunta original de forma alguma
Respostas:
Use a
FROM_UNIXTIME()
função no MySQLLembre-se de que, se você estiver usando uma estrutura que a armazena em milissegundos (por exemplo, carimbo de data / hora de Java), será necessário dividir por 1000 para obter o tempo Unix correto em segundos.
fonte
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )
não funciona porque? usando v5.6SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )
funciona.TIMESTAMP()
não retorna um valor inteiro.Esta é a solução definitiva se a data especificada estiver em formato codificado como
1300464000
fonte
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
orderdate
), '% Y-% m-% d') como "Data" FROMorders
seria a solução definitiva: DPara responder ao comentário de Janus Troelsen
Use UNIX_TIMESTAMP em vez de TIMESTAMP
A função TIMESTAMP retorna uma Data ou um DateTime e não um registro de data e hora, enquanto UNIX_TIMESTAMP retorna um registro de data e hora unix
fonte
Você pode usar
Para uma descrição detalhada sobre
fonte
SELECT from_unixtime( UNIX_TIMESTAMP(fild_with_timestamp) ) from "your_table"
Esse trabalho pra mim
fonte