天天看點

mysql中關于日期類型和時間類型

  • 對于老手老說,忘記的話隻需要一幅圖即可,然後後面的就可以忽略了~O(∩_∩)O~

mysql中關于日期類型和時間類型

        一 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 |

         +-----------+