- 對于老手老說,忘記的話隻需要一幅圖即可,然後後面的就可以忽略了~O(∩_∩)O~
一 mysql的日期類型
1.DATE
日期。支援的範圍為'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式顯示DATE值,但允許使用字元串或數字為DATE列配置設定值
2.DATETIME
日期和時間的組合。支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,但允許使用字元串或數字為DATETIME列配置設定值。
3.TIMESTAMP
時間戳。範圍是'1970-01-01 00:00:00'到2037年。
TIMESTAMP列用于INSERT或UPDATE操作時記錄日期和時間。如果你不配置設定一個值,表中的第一個TIMESTAMP列自動設定為最近操作的日期和時間。也可以通過配置設定一個NULL值,将TIMESTAMP列設定為目前的日期和時間。
TIMESTAMP值傳回後顯示為'YYYY-MM-DD HH:MM:SS'格式的字元串,顯示寬度固定為19個字元。如果想要獲得數字值,應在TIMESTAMP 列添加+0。
4.TIME
時間。範圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式顯示TIME值,但允許使用字元串或數字為TIME列配置設定值。
5.YEAR
兩位或四位格式的年。預設是四位格式。在四位格式中,允許的值是1901到2155和0000。在兩位格式中,允許的值是70到69,表示從1970年到2069年。MySQL以YYYY 格式顯示YEAR值,但允許使用字元串或數字為YEAR列配置設定值。
MySQL還允許将'0000-00-00'儲存為“僞日期”(如果不使用NO_ZERO_DATE SQL模式)。這在某些情況下比使用NULL值更友善(并且資料和索引占用的空間更小)。
二 mysql常用的日期函數和格式化
1.MYSQL 日期格式以及轉化
擷取系統日期: NOW()
格式化日期: DATE_FORMAT(date, format)
傳回系統日期,輸出 2009-12-25 14:38:59
select now();//輸出09-12-25
select date_format(now(),'%y-%m-%d');
date_format(date,'%Y-%m-%d') //日期轉字元串 -------------->oracle中的to_char(); str_to_date(date,'%Y-%m-%d') //字元串轉日期 -------------->oracle中的to_date();
根據format字元串格式化date值:
%S, %s 兩位數字形式的秒( 00,01, ..., 59)
%I, %i 兩位數字形式的分( 00,01, ..., 59)
%H 兩位數字形式的小時,24 小時(00,01, ..., 23)
%h 兩位數字形式的小時,12 小時(01,02, ..., 12)
%k 數字形式的小時,24 小時(0,1, ..., 23)
%l 數字形式的小時,12 小時(1, 2, ..., 12)
%T 24 小時的時間形式(hh:mm:ss)
%r 12 小時的時間形式(hh:mm:ss AM 或hh:mm:ss PM)
%p AM或PM
%W 一周中每一天的名稱(Sunday, Monday, ..., Saturday)
%a 一周中每一天名稱的縮寫(Sun, Mon, ..., Sat)
%d 兩位數字表示月中的天數(00, 01,..., 31)
%e 數字形式表示月中的天數(1, 2, ..., 31)
%D 英文字尾表示月中的天數(1st, 2nd, 3rd,...)
%w 以數字形式表示周中的天數( 0 = Sunday, 1=Monday, ..., 6=Saturday)
%j 以三位數字表示年中的天數( 001, 002, ..., 366)
%U 周(0, 1, 52),其中Sunday 為周中的第一天
%u 周(0, 1, 52),其中Monday 為周中的第一天
%M 月名(January, February, ..., December)
%b 縮寫的月名( January, February,...., December)
%m 兩位數字表示的月份(01, 02, ..., 12)
%c 數字表示的月份(1, 2, ...., 12)
%Y 四位數字表示的年份
%y 兩位數字表示的年份
%% 直接值“%”
2. 獲得目前日期(date)函數:curdate()
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2008-08-08 |
+------------+
3. 獲得目前時間(time)函數:curtime()
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 22:41:30 |
+-----------+