MySQL中FROM_UNIXTIME()和UNIX_TIMESTAMP()函數如何使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1、FROM_UNIXTIME( unix_timestamp )
參數:通常是壹個十位的數字,如:1344887103
返回值:有兩種,可能是類似 'YYYY-MM-DD HH:MM:SS' 這樣的字符串,也有可能是類似于 YYYYMMDDHHMMSS.uuuuuu 這樣的數字,具體返回什么取決于該函數被調用的形式。
1 | mysql> select FROM_UNIXTIME(1344887103); |
2 | +---------------------------+ |
3 | | |
4 | +---------------------------+ |
5 | | |
6 | +---------------------------+ |
7 |
|
2、FROM_UNIXTIME( unix_timestamp ,format )
參數 unix_timestamp :與方法 FROM_UNIXTIME( unix_timestamp ) 中的參數含義一樣;
參數 format : 轉換之后的時間字符串顯示的格式;
返回值:按照指定的時間格式顯示的字符串;
view
sourceprint?
01 | mysql> select FROM_UNIXTIME(1344887103,'%Y-%M-%D); |
02 | +-----------------------------------------------+ |
03 | |'%Y-%M-%D) |
04 | +-----------------------------------------------+ |
05 | | |
06 | +-----------------------------------------------+ |
07 | 1in set (0.00 |
08 | mysql> select FROM_UNIXTIME(1344887103,'%Y-%m-%D); |
09 | +-----------------------------------------------+ |
10 | |'%Y-%m-%D) |
11 | +-----------------------------------------------+ |
12 | | |
13 | +-----------------------------------------------+ |
14 |
15 | 1in set (0.00 |
1、UNIX_TIMESTAMP()
返回值:當前時間的UNIX格式數字串,或者說是 UNIX 時間戳(從 UTC 時間'1970-01-01 00:00:00'開始的秒數),通常為十位,如 1344887103。Java里面 new Date().getTime()得到的結果是13位的,而數據庫轉化的是10位的。
1 | mysql> select unix_timestamp(); |
2 | +------------------+ |
3 | | |
4 | +------------------+ |
5 | | |
6 | +------------------+ |
7 | 1in set (0.00 |
2、UNIX_TIMESTAMP( date )
參數:date 可能是個 DATE 字符串,DATETIME 字符串,TIMESTAPE 字符串,或者是一個類似于 YYMMDD 或者 YYYYMMDD 的數字串。
返回:從 UTC 時間'1970-01-01 00:00:00'開始到該參數之間的秒數。服務器將參數 date 解釋成當前時區的壹個值并且將其轉化成 UTC 格式的內部時間??蛻舳藙t可以自行設置當前時區。當 UNIX_TIMESTAMP() 用于壹個 TIMESTAMP 列時,函數直接返回內部時間戳的值;如果你傳遞壹個超出范圍的時間到 UNIX_TIMESTAMP(),它的返回值是零。
01 | mysql> SELECT UNIX_TIMESTAMP(); |
02 | +------------------+ |
03 | | |
04 | +------------------+ |
05 | | |
06 | +------------------+ |
07 | 1in set (0.00 |
08 |
09 | mysql> SELECT UNIX_TIMESTAMP('2012-08-14); |
10 | +---------------------------------------+ |
11 | |'2012-08-14) |
12 | +---------------------------------------+ |
13 | | |
14 | +---------------------------------------+ |
15 | 1in set (0.00 |
注意:如果你使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 來轉換 TIMESTAMP 值與 Unix 時間戳的值,精度會丟失,因為這個映射在兩個方向上不是一一對應的。比如說,由于本地時區的更改,有可能兩個 UNIX_TIMESTAMP() 會映射到同壹個 Unix 時間戳的值。 FROM_UNIXTIME() 只會映射到原來的那個時間戳的值上。
關于MySQL中FROM_UNIXTIME()和UNIX_TIMESTAMP()函數如何使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。