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() 函數來把字符串轉化成真正的本地時間戳。