MySQL時間戳轉成日期格式

小强找BUG發表於2024-07-15

將時間戳轉換為日期格式:

複製程式碼

-- 如果時間戳為毫秒級長度為13位,需要先除以1000

SELECT id, `task_name` ,
FROM_UNIXTIME(`task_register_begin_time`/1000,'%Y-%m-%d %H:%i:%s') as task_register_begin_time,
FROM_UNIXTIME(`task_register_end_time`/1000,'%Y-%m-%d %H:%i:%s') as task_register_end_time ,
FROM_UNIXTIME(`task_grant_begin_time`/1000,'%Y-%m-%d %H:%i:%s') as task_grant_begin_time,
FROM_UNIXTIME(`task_grant_end_time`/1000,'%Y-%m-%d %H:%i:%s') as task_grant_end_time
FROM `workstation_task_base` a
WHERE
`is_recurring`= 1
ORDER BY `id` DESC ;

複製程式碼

時間格式:

轉換前:

轉換後:

DATE_ADD()

MySQL的DATE_ADD() 函式向日期新增指定的時間間隔。

語法:

DATE_ADD(date,INTERVAL expr type)
date 引數是合法的日期表示式。expr 引數是您希望新增的時間間隔。
type 引數可以是下列值:

與時區相關的轉換時間:
1 select date_add(DATE_FORMAT(CONVERT(p.create_time,SIGNED),'%Y-%m-%d %H:%i:%S'),interval EXTRACT(HOUR FROM TIMEDIFF(NOW() ,UTC_TIMESTAMP())) hour) createTime from gmp_payment_deal p

解釋:

select UTC_TIMESTAMP() 獲取世界標準是時間

select EXTRACT(HOUR FROM TIMEDIFF(NOW() ,UTC_TIMESTAMP())) 資料庫時間與標準時間 相差的時間

DATE_FORMAT()函式:

convert_tz(dt,from_tz,to_tz)

轉換datetime值dt從from_tz由給定轉到to_tz時區給定的時區,並返回結果值,如果引數無效則該函式返回null

1 convert_tz(create_time,'+00:00', '+08:00')//從0時區轉到8時區

相關文章