日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4、(日期和时间类型)DTAETIME、TIMESTAMP、DATE、TIME、YEAR

發布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4、(日期和时间类型)DTAETIME、TIMESTAMP、DATE、TIME、YEAR 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 中有多處表示日期的數據類型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。

當只記錄年信息的時候,可以只使用 YEAR 類型。

每一個類型都有合法的取值范圍,當指定確定不合法的值時,系統將“零”值插入數據庫中。

下表中列出了 MySQL 中的日期與時間類型。

YEAR 類型

YEAR 類型是一個單字節類型,用于表示年,在存儲時只需要 1 個字節。可以使用各種格式指定 YEAR,如下所示:

  • 以 4 位字符串或者 4 位數字格式表示的 YEAR,范圍為 ‘1901’~’2155’。輸入格式為 ‘YYYY’ 或者YYYY,例如,輸入 ‘2010’ 或 2010,插入數據庫的值均為 2010。
  • 以 2 位字符串格式表示的 YEAR,范圍為 ‘00’ 到 ‘99’。‘00’~’69’ 和 ‘70’~’99’ 范圍的值分別被轉換為2000~2069 和 1970~1999 范圍的 YEAR 值。‘0’ 與 ‘00’ 的作用相同。插入超過取值范圍的值將被轉換為2000。
  • 以 2 位數字表示的 YEAR,范圍為 1~99。1~99 和 70~99 范圍的值分別被轉換為 2001~2069 和1970~1999 范圍的 YEAR 值。注意,在這里 0 值將被轉換為 0000,而不是 2000。

提示:兩位整數范圍與兩位字符串范圍稍有不同。例如,插入 3000 年,讀者可能會使用數字格式的 0 表示 YEAR,實際上,插入數據庫的值為0000,而不是所希望的 3000。只有使用字符串格式的 ‘0’ 或 ‘00’,才可以被正確解釋為 3000,非法 YEAR值將被轉換為 0000。

TIME 類型

TIME 類型用于只需要時間信息的值,在存儲時需要 3 個字節。格式為 HH:MM:SS。HH 表示小時,MM 表示分鐘,SS 表示秒。

TIME 類型的取值范圍為 -838:59:59~838:59:59,小時部分如此大的原因是 TIME 類型不僅可以用于表示一天的時間(必須小于 24 小時),還可能是某個事件過去的時間或兩個事件之間的時間間隔(可大于 24 小時,或者甚至為負)。

可以使用各種格式指定 TIME 值,如下所示。

  • 'D HH:MM:SS' 格式的字符串。使用“非嚴格”的語法:'HH:MM:SS'、'HH:MM'、'D HH' 或'SS'。這里的 D 表示日,可以取 0~34 之間的值。在插入數據庫時,D 被轉換為小時保存,格式為 “D*24+HH”。
  • 'HHMMSS' 格式、沒有間隔符的字符串或者 HHMMSS 格式的數值,假定是有意義的時間。例如,‘101112’被理解為’10:11:12’,但是 ‘106112’ 是不合法的(它有一個沒有意義的分鐘部分),在存儲時將變為 00:00:00。

提示:為 TIME 列分配簡寫值時應注意:如果沒有冒號,MySQL 解釋值時,假定最右邊的兩位表示秒。(MySQL 解釋 TIME值為過去的時間而不是當前的時間)。例如,讀者可能認為 ‘1112’ 和 1112 表示 11:12:00(即 11 點過 12分鐘),但MySQL 將它們解釋為 00:11:12(即 11 分 12 秒)。同樣 ‘12’ 和 12被解釋為00:00:12。相反,TIME 值中如果使用冒號則肯定被看作當天的時間,也就是說,‘11:12’ 表示 11:12:00,而不是 00:11:12。

DATE 類型

DATE 類型用于僅需要日期值時,沒有時間部分,在存儲時需要 3 個字節。日期格式為 'YYYY-MM-DD',其中 YYYY 表示年,MM 表示月,DD 表示日。

在給 DATE 類型的字段賦值時,可以使用字符串類型或者數字類型的數據插入,只要符合 DATE 的日期格式即可。如下所示:

  • 以 'YYYY-MM-DD' 或者 'YYYYMMDD' 字符中格式表示的日期,取值范圍為’1000-01-01’~’9999-12-3’。例如,輸入 ‘2015-12-31’ 或者 ‘20151231’,插入數據庫的日期為2015-12-31。
  • 以 'YY-MM-DD' 或者 'YYMMDD' 字符串格式表示日期,在這里YY表示兩位的年值。MySQL
    解釋兩位年值的規則:‘00~69’ 范圍的年值轉換為 '2000~2069',‘70~99’ 范圍的年值轉換為 ‘1970~1999’。例如,輸入 ‘15-12-31’,插入數據庫的日期為 2015-12-31;輸入
    ‘991231’,插入數據庫的日期為 1999-12-31。
  • 以 YYMMDD 數字格式表示的日期,與前面相似,00~69 范圍的年值轉換為 2000~2069,80~99 范圍的年值轉換為1980~1999。例如,輸入 151231,插入數據庫的日期為 2015-12-31,輸入 991231,插入數據庫的日期為1999-12-31。
  • 使用 CURRENT_DATE 或者 NOW(),插入當前系統日期。

提示:MySQL允許“不嚴格”語法:任何標點符號都可以用作日期部分之間的間隔符。例如,‘98-11-31’、‘98.11.31’、'98/11/31’和’98@11@31’是等價的,這些值也可以正確地插入數據庫。

DATETIME 類型

DATETIME 類型用于需要同時包含日期和時間信息的值,在存儲時需要 8 個字節。
日期格式為 'YYYY-MM-DD HH:MM:SS',其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小時,MM 表示分鐘,SS 表示秒。

在給 DATETIME 類型的字段賦值時,可以使用字符串類型或者數字類型的數據插入,只要符合 DATETIME 的日期格式即可,如下所示。

  • 以 'YYYY-MM-DD HH:MM:SS' 或者 'YYYYMMDDHHMMSS' 字符串格式表示的日期,取值范圍為
    ‘1000-01-01 00:00:00’~’9999-12-3 23:59:59’。例如,輸入 ‘2014-12-31 05:05:05’ 或者 '20141231050505’,插入數據庫的 DATETIME 值都為 2014-12-31 05:05:05。
  • 以 'YY-MM-DD HH:MM:SS' 或者 'YYMMDDHHMMSS' 字符串格式表示的日期,在這里 YY
    表示兩位的年值。與前面相同,‘00~79’ 范圍的年值轉換為 ‘2000~2079’,‘80~99’ 范圍的年值轉換為’1980~1999’。例如,輸入 ‘14-12-31 05:05:05’,插入數據庫的 DATETIME 為 2014-12-31 05:05:05;輸入 141231050505,插入數據庫的 DATETIME 為 2014-12-31 05:05:05。
  • 以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 數字格式表示的日期和時間。例如,輸入
    20141231050505,插入數據庫的 DATETIME 為 2014-12-31 05:05:05;輸入
    140505050505,插入數據庫的 DATETIME 為 2014-12-31 05:05:05。

提示:MySQL 允許“不嚴格”語法:任何標點符號都可用作日期部分或時間部分之間的間隔符。例如,‘98-12-31 11:30:45’、‘98.12.31 11+30+35’、‘98/12/31 113045’ 和 ‘98@12@31 113045’ 是等價的,這些值都可以正確地插入數據庫。

TIMESTAMP 類型

TIMESTAMP 的顯示格式與 DATETIME 相同,顯示寬度固定在 19 個字符,日期格式為 YYYY-MM-DD HH:MM:SS,在存儲時需要 4 個字節。但是 TIMESTAMP 列的取值范圍小于 DATETIME 的取值范圍,為 '1970-01-01 00:00:01’UTC~’2038-01-19 03:14:07’UTC。在插入數據時,要保證在合法的取值范圍內。

提示:協調世界時(英:Coordinated Universal Time,法:Temps Universel Coordonné)又稱為世界統一時間、世界標準時間、國際協調時間。英文(CUT)和法文(TUC)的縮寫不同,作為妥協,簡稱 UTC。

TIMESTAMP 與 DATETIME 除了存儲字節和支持的范圍不同外,還有一個最大的區別是:

  • DATETIME 在存儲日期數據時,按實際輸入的格式存儲,即輸入什么就存儲什么,與時區無關;
  • 而 TIMESTAMP 值的存儲是以UTC(世界標準時間)格式保存的,存儲時對當前時區進行轉換,檢索時再轉換回當前時區。即查詢時,根據當前時區的不同,顯示的時間值是不同的。

提示:如果為一個 DATETIME 或 TIMESTAMP 對象分配一個 DATE 值,結果值的時間部分被設置為 ‘00:00:00’,因此 DATE 值未包含時間信息。如果為一個 DATE 對象分配一個 DATETIME 或 TIMESTAMP值,結果值的時間部分被刪除,因此DATE 值未包含時間信息。

總結

以上是生活随笔為你收集整理的4、(日期和时间类型)DTAETIME、TIMESTAMP、DATE、TIME、YEAR的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。