160 likes | 277 Views
PHP 與 MySQL 入門學習指南. 第 31 章 日期時間資料. 凱文瑞克 著. 日期相關的資料型態. DATETIME 欄位資料型態. 這種欄位保存了完整的日期與時間 , 精確度可至秒 , 資料允許範圍從「 1000-01-01 00:00:00 」到「 9999-12-31 23:59:59 」。. DATE 欄位資料型態. DATE 紀錄特定日期 , 但是沒有儲存時間的資訊 , 此資料型態符合 Y2K 測試 , 其資料範圍從「 1000-01-01 」到「 9999-12-31 」. TIME 欄位資料型態.
E N D
PHP與MySQL入門學習指南 第 31 章日期時間資料 凱文瑞克 著
DATETIME 欄位資料型態 • 這種欄位保存了完整的日期與時間, 精確度可至秒, 資料允許範圍從「1000-01-01 00:00:00」到「9999-12-31 23:59:59」。
DATE 欄位資料型態 • DATE 紀錄特定日期, 但是沒有儲存時間的資訊, 此資料型態符合 Y2K 測試, 其資料範圍從「1000-01-01」到「9999-12-31」
TIME 欄位資料型態 • 和 DATE 欄位資料型態正好相反, 它紀錄的是特定時間。它可紀錄的時間範圍不僅是從「00:00:00」到「23:59:59」, 事實上, 是從「-838:59:59」到「838:59:59」, 如此不僅只是可利用來紀錄一般的時間, 也可以用來紀錄兩個特定事件之間的時間差。 上面這些欄位資料型態的輸入方式都很有彈性, 資料分隔字元可以使用「-」, 或省略前置的 0, 例如「04.22.10」可寫成「4.22.10」。也可用沒有任何分隔字元的輸入方式, 例如「042210」或是「42210」, 但是使用這種方式時要小心, MySQL 是由右至左依序判別時間, 如「4:22」或「0422」都會被當作「00:04:22」, 而不是「04:22:00」。
YEAR 欄位資料型態 • YEAR 欄位資料型態是用來紀錄年份, 它的資料長度為 1 byte, 其資料允許範圍為 1901 至 2155, 其數值表示為二位數或是四位數。二位數的範圍可存入 1 到 99 (數字 1 到 99 或是字串 '00' 到 '99'), 特別的是若數值介於 1 到 69 之間(或是0到69), 代表的是 2001 年到 2069 年 (或是 2000 年到 2069 年)。
TIMESTAMP 欄位資料型態(1) • TIMESTAMP 欄位資料型態是個相當好用的型態, 它所紀錄的是該筆資料存入或更新時的時間, 可以很方便的用來紀錄資料最近更新的時間, 而不必每次需要另行處理時間後再存入。TIMESTAMP 只能處理介於 1970 到 2037 年之間的資料, 其可精確至秒, 下表為其所提供的格式。
MySQL 的日期函數(1) • [DAYOFWEEK(date)] • [WEEKDAY(date)] • [DAYOFMONTH(date)] • [DAYOFYEAR(date)] • [MONTH(date)] • [DAYNAME(date)] • [MONTHNAME(date)]
MySQL 的日期函數(2) [QUARTER(date)] [WEEK(date) 或 WEEK(date,first)] [YEAR(date)] [HOUR(time)] [MINUTE(time)] [SECOND(time)] [PERIOD_ADD(P,N)] [PERIOD_DIFF(P1,P2)]
MySQL 的日期函數(3) • [DATE_ADD(date,INTERVAL expr type)] • [DATE_SUB(date,INTERVAL expr type)] • [ADDDATE(date,INTERVAL expr type)] • [SUBDATE(date,INTERVAL expr type)]
MySQL 的日期函數(5) [TO_DAYS(date)] [FROM_DAYS(N)] [DATE_FORMAT(date,format)]
MySQL 的日期函數(7) [TIME_FORMAT(time,format)] [CURDATE( ) 或 CURRENT_DATE] [CURTIME() 或 CURRENT_TIME] [NOW() 或 SYSDATE() 或 CURRENT_TIMESTAMP] [UNIX_TIMESTAMP() 或 UNIX_TIMESTAMP(date)]
MySQL 的日期函數(8) [FROM_UNIXTIME(unix_timestamp) ] [FROM_UNIXTIME(unix_timestamp,format)] [SEC_TO_TIME(seconds)] [TIME_TO_SEC(time)]