mysql中的unix timestamp函式

2021-08-02 07:08:29 字數 1056 閱讀 3424

所有linux系統檔案系統底層儲存的都是utc時間,也就是說都是自2023年0時0分0秒以來utc標準時間的秒數。

在mysql環境下:select unix_timestamp(); 即可以得到

這個時間,是當前時間的秒數。可以逆**select from_unixtime(1496822616);

timestamp是mysql資料庫中的一種字段型別:內部儲存是四個位元組;精度達到微妙;轉換成utc時間儲存;讀取的時候再根據時區轉換回來。

timestamp值可以從2023年一直到2023年,精度為一秒,imestamp值顯示尺寸的格式如下表所示:

+---------------+----------------+

| 列型別    | 顯示格式    |

| timestamp(14) | yyyymmddhhmmss | 

| timestamp(12) | yymmddhhmmss  |

| timestamp(10) | yymmddhhmm   |

| timestamp(8) | yyyymmdd    |

| timestamp(6) | yymmdd     |

| timestamp(4) | yymm      |

| timestamp(2) | yy       |

+---------------+----------------+

「完整」timestamp格式是14位,但timestamp列也可以用更短的顯示尺寸,創造最常見的顯示尺寸是6、8、12、和14。

你可以在建立表時指定乙個任意的顯示尺寸,但是定義列長為0或比14大均會被強制定義為列長14。

列長在從1~13範圍的奇數值尺寸均被強制為下乙個更大的偶數。

補充:獲取當前時間,有兩種方式:select current_timestamp();select now();

獲取當前時間的秒數,也可以這樣寫:select unix_timestamp(current_timestamp());但是如果select unix_timestamp(now());就不可以。

關於sql時間轉換的知識,可以參考:

獲取當前UnixTime的零點時間戳

最近有個需求,開屏廣告每天只出一次。思路為如果出了開屏廣告,則記錄當前時間,下次來的時候,讀取當前時間和上一次出開屏的時間。算一下是不是在同一天即可。我們的第乙個想法是將上次開屏時間和當前時間歸一到 0 點進行比較 其實有寫個更簡單的方法 所以我們需要獲取某乙個時間戳 當天的 0點。可以採用 loc...

mysql中的編碼 mysql中的編碼

一 mysql中的編碼 mysql show variables like collation mysql show variables like character set 預設是latin1編碼,會導致中文亂碼。修改庫的編碼 mysql alter database db name charac...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...