萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MYSQL UNIX_TIMESTAMP()詳解

MYSQL UNIX_TIMESTAMP()詳解

mysql教程 unix_timestamp()詳解

若無參數調用,則返回一個 unix timestamp ('1970-01-01 00:00:00' gmt 之後的秒數) 作為無符號整數。若用date 來調用 unix_timestamp(),它會將參數值以'1970-01-01 00:00:00' gmt後的秒數的形式返回。date 可以是一個 date 字符串、一個 datetime字符串、一個 timestamp或一個當地時間的yymmdd 或yyymmdd格式的數字。
mysql> select unix_timestamp();
-> 882226357
mysql> select unix_timestamp('1997-10-04 22:23:00');
-> 875996580
當 unix_timestamp 被用在 timestamp列時, 函數直接返回內部時戳值, 而不進行任何隱含的 “string-to-unix-timestamp”轉化。假如你向unix_timestamp()傳遞一個溢出日期,它會返回 0,但請注意只有基本范圍檢查會被履行 (年份從1970 到 2037, 月份從01 到12,日期從 01 到31)。

select `start_time` , `end_time` , unix_timestamp( now( ) )
from `fair_exhibition_info`
limit 0 , 30

start_time int開始時間            end_time int結束時間                unix_timestamp( now( ) )
1249314320                                  1251560723                                    1253244650
1251820776                                 1253721578                                    1253244650
1251827113                                  1253900715    

通過 unix_timestamp 函數把 mysql 數據庫教程中的 date 類型數據轉換成 unix timestamp 形式的一個整形數字:

select unix_timestamp('2006-02-28') testdate;

按理說得到的時間戳應該可以直接拿來給 php教程 的 date() 等函數使用。但奇怪的是:

echo date("y-m-d",$testdate);

顯示出來的日期跟數據庫實際的日期相比卻少了一天,

把這八個小時加回去(unix_timestamp('2006-02-28' + interval 8 hour));或者棄用 unix_timestamp 函數, 直接得到 mysql date 字符串之後通過 strtotime() 函數來把字符串轉化成真正的本地時間戳。

copyright © 萬盛學電腦網 all rights reserved