首頁 > 軟體

SQL中from_unixtime函數的使用方法範例

2022-08-30 14:01:03

1.from_unixtime的語法及用法

(1)語法:from_unixtime(timestamp ,date_format)

即from_unixtime(時間戳 ,日期格式

引數說明

timestamp :時間戳,可為一串數位,也可為欄位。

date_format:時間格式,不填預設為%Y-%m-%d %H:%i:%s的格式。

(2)用法:將時間戳轉為指定日期格式。

(3)常見的日期格式

日期格式說明
%Y年,4位元數位,如1999
%y年,2位數位,如00
%M月,英文月份,如January
%b月,縮寫的月份名字,如Jan
%m月,數位(01……12)
%c月,數位(1……12)
%W星期,名字,如Sunday
%a星期,縮寫的名字,如Sun
%D天,有英文字首的天日期,如1st
%d天,月份中的天數,數位(01……31)
%e天,月份中的天數,數位(1……31)
%H小時,數位(00……23)
%k小時,數位(0……23)
%h小時,數位(01……12)
%l小時,數位(1……12)
%r時間,12 小時(hh:mm:ss [AP]M)
%T時間,24 小時(hh:mm:ss)
%S秒(00~59)
%s秒(00~59)

2.範例

例:現有一個產品資訊表product,timestamp儲存產品入庫時間戳,產品名為name。獲取入庫時間為2020-02-01之後的每個產品資訊及入庫時間。

select ID,name,from_unixtime((timestamp + 8*3600),"%Y%-m-%d") as date
from product
where from_unixtime((timestamp + 8*3600),"%Y-%m-%d")>='2020-02-01'
 
或
 
select ID,name,from_unixtime((timestamp + 8*3600),"%Y-%m-%d %H:%i:%s") as date
from product
where from_unixtime((timestamp + 8*3600),"%Y-%m-%d")>='2020-02-01'
 
或
 
select ID,name,from_unixtime((timestamp + 8*3600),"yyyyMMdd") as date
from product
where from_unixtime((timestamp + 8*3600),"yyyy-MM-dd")>='2020-02-01'

因為想要獲取北京時間的日期,存在時區問題,時間戳為GMT(格林尼治標準時間)需要加上8小時的時差轉為北京時間。可根據實際情況轉時差。

參考文章:mysql 時間戳格式化函數from_unixtime使用說明

時間戳的時區問題可參考: https://www.jb51.net/article/261129.htm

總結

到此這篇關於SQL中from_unixtime函數使用方法的文章就介紹到這了,更多相關SQL from_unixtime函數使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com