mysql時間戳及字串時間等轉換

2021-09-12 22:34:04 字數 2589 閱讀 1654

使用mysql資料庫過程中,經常會遇到時間戳與格式化字串時間、字串時間與date時間等的相互轉換,現將轉換涉及的函式和用法做下彙總,以便查閱.

一、函式列表:

1. date_format(date, format) : 日期格式化函式, 用於以不同的格式顯示日期/時間資料; 

date 引數是合法的日期. format 規定日期/時間的輸出格式.

2. unix_timestamp() : 若無引數呼叫,則返回乙個 unix timestamp ('1970-01-01 00:00:00' gmt 之後的秒數) 作為無符號整數,得到當前時間戳;

3. unix_timestamp(date) : 若用date 來呼叫 unix_timestamp(),它會將引數值以'1970-01-01 00:00:00' gmt後的秒數的形式返回。date 可以是乙個 date 字串、乙個 datetime字串、乙個 timestamp或乙個當地時間的yymmdd 或yyymmdd格式的數字;

4. str_to_date(str,format): 將時間格式的字串(str); 按照所提供的顯示格式(format)轉換為datetime型別的值;

5.from_unixtime(unix_timestamp,format):在from_unixtime中unix_timestamp可以是欄位名,也可以直接是unix 時間戳,format主要是將返回值格式化。返回表示 unix 時間標記的乙個字串,根據format字串格式化。format可以包含與date_format函式列出的條目同樣的修飾符。

二、使用示例:

1.  date_format(date, format)

select date_format(now(),"%y-%m-%d %t");   -- 輸出:  2019-03-20 10:52:20 

2.  unix_timestamp()

select unix_timestamp(); -- 輸出: 1553050476

3.  unix_timestamp(date)

select unix_timestamp('2019-01-06 10:20:30');  -- 輸出: 1546741230

select unix_timestamp(now()); -- 輸出: 1553050627

select unix_timestamp('2019-01-06'); -- 輸出: 1546704000

4.  str_to_date(str,format)

select str_to_date('2019-03-06 10:20:30','%y-%m-%d %h:%i:%s'); -- 輸出: 2019-03-07 00:20:30 (date型別,因資料庫時區設定不同,固時間有差異)

select str_to_date('2019-01-09', '%y-%m-%d %t'); 輸出: 2019-01-09 14:00:00 (date型別)

5.from_unixtime(unix_timestamp,format)

select from_unixtime(1553050627); -- 輸出: 2019-03-20 23:57:07 (date型別)

select from_unixtime(1553050627,'%y-%m-%d %t'); -- 輸出: 2019-03-20 10:57:07 (字串)

select from_unixtime(1553050627, '%y-%m-%d %h:%i:%s');  -- 輸出: 2019-03-20 10:57:07 (字串)

三、format 樣式:

%m 月名字(january……december)

%w 星期名字(sunday……saturday) 

%d 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)

%y 年, 數字, 4 位

%y 年, 數字, 2 位

%a 縮寫的星期名字(sun……sat)

%d 月份中的天數, 數字(00……31)

%e 月份中的天數, 數字(0……31)

%m 月, 數字(01……12)

%c 月, 數字(1……12)

%b 縮寫的月份名字(jan……dec)

%j 一年中的天數(001……366)

%h 小時(00……23)

%k 小時(0……23)

%h 小時(01……12)

%i 小時(01……12)

%l 小時(1……12)

%i 分鐘, 數字(00……59)

%r 時間,12 小時(hh:mm:ss [ap]m)

%t 時間,24 小時(hh:mm:ss)

%s 秒(00……59)

%s 秒(00……59)

%p am或pm

%w 乙個星期中的天數(0=sunday ……6=saturday )

%u 星期(0……52), 這裡星期天是星期的第一天

%u 星期(0……52), 這裡星期一是星期的第一天

%% 乙個文字「%」。

MySQL 字串轉時間戳

在php等後台語言中想要將字串轉換成時間戳是非常方便的,但是在mysql中並沒有直接提供相應的函式進行直接轉換,或者說對於特殊的字串轉換效果並不理想。但是mysql中存在豐富的時間處理函式,可以組合進行處理,以達到效果。採用下面的方法可以將字串轉換成 unix時間戳 select unix time...

Python 時間戳及字串轉換

目錄 時間轉字串 字串轉時間 使用time模組下的strptime函式 time.struct time說明 使用datetime模組下的datetime類 綜合範例 usr bin env python coding utf 8 author lily yu date.2017 7 9 impor...

php 字串轉時間戳 php字串轉時間戳

php字串轉時間戳 在php中可以使用 strtotime 函式將字串轉為時間戳。strtotime說明和用法 strtotime 將任何字串的日期時間描述解析為 unix 時間戳strtotime string time int now time int 本函式預期接受乙個包含美國英語日期格式的字...