SQL中from_unixtime函數的使用方法實例
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函數使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- mysql時間戳格式化函數from_unixtime使用的簡單說明
- MySql獲取當前時間並轉換成字符串的實現
- MySQL函數date_format()日期格式轉換的實現
- 大數據Spark Sql中日期轉換FROM_UNIXTIME和UNIX_TIMESTAMP的使用
- MYSQL SQL查詢近7天一個月的數據的操作方法