日期與時間型別
mysql提供的表示日期和時間的資料型別分別是 :year、date、time、datetime 和 timestamp。
year型別
year型別用於表示年份,在mysql中,可以使用以下三種格式指定year型別 的值。
1、使用4位字串或數字表示,範圍為』1901』—'2155』或1901—2155。例如,輸人 『2019』或2019插人到資料庫中的值均為2019。
2、使用兩位字串表示,範圍為』00』—『99』。其中,『00』—'69』範圍的值會被轉換為 2000—2069範圍的year值,『70』—'99』範圍的值會被轉換為1970—1999範圍的year 值。例如,輸人』19』插人到資料庫中的值為2019。
3、使用兩位數字表示,範圍為1—99。其中,1—69範圍的值會被轉換為2001— 2069範圍的year值,70—99範圍的值會被轉換為1970—1999範圍的year值。例 如,輸人19插入到資料庫中的值為2019。 請注意:當使用year型別時,一定要區分』0』和0。因為字串格式的』0』表示的year值是2000而數字格式的0表示的year值是0000。
date型別
date型別用於表示日期值,不包括時間部分。在mysql中,可以使用以下四種格式指定data型別的值
1、以『yyyy-mm-dd'或者』yyyymmdd'字串格式表示。 例如,輸入『2014-01-21』或『20140121』,插入資料庫中的日期都是2014-02-21。
2、以』yy-mm-dd』或者『yymmdd』字串格式表示。yy表示的是年,範圍為『00『~』99』,其中『00』~』69』範圍的值會被轉換為2000~2069範圍的值,『70』~『99』範圍的值會被轉化為1970~1999範圍的值。 例如,輸入『14-01-21』或者『140121』,插入資料庫中的日期都是2014-01-21.
3、以yy-mm-dd或者yymmdd數字格式表示。 例如,輸入14-021-21或140121,插入資料庫中的日期都為2014-01-21.
4、使用current_date或者now()表示當前系統日期
time型別
time型別用於表示時間值,它的顯示形式一般為hh:mm:ss,其中,hh表示小時, mm表示分,ss表示秒。在mysql中,可以使用以下3種格式指定time型別的值。
1、以』d hh:mm:ss』字串格式表示。其中,d表示日可取0—34之間的值, 插人資料時,小時的值等於(dx24+hh)。 例如,輸入』2 11:30:50』插人資料庫中的日期為59:30:50。
2、以』hhmmss』字串格式或者hhmmss數字格式表示。 例如,輸人』115454』或115454,插入資料庫中的日期為11:54:54 3、使用current_time或now()輸人當前系統時間。
datetime型別
datetime型別用於表示日期和時間,它的顯示形式為』yyyy-mm-dd hh: mm:ss』,其中,yyyy表示年,mm表示月,dd表示日,hh表示小時,mm表示分,ss 表示秒。
1、以』yyyy-mm-dd hh:mm:ss』或者』yyyymmddhhmmss』字串格式表示的日期和時間,取值範圍為』1000-01-01 00:00:00』—『9999-12-3 23:59:59』。例如,輸人』2019-01-22 09:01:23』或 『20140122_0_90123』插人資料庫中的 datetime 值都為 2019-01-22 09:01:23。
2、以』yy-mm-dd hh:mm:ss』或者』yymmddhhmmss』字串格式表示的日期和時間,其中yy表示年,取值範圍為』00』—『99』。與date型別中的yy相同,『00』— '69』範圍的值會被轉換為2000—2069範圍的值,『70』—'99』範圍的值會被轉換為1970—1999範圍的值。
3、以yyyymmddhhmmss或者yymmddhhmmss數字格式表示的日期 和時間。例如,插入20190122090123或者190122090123,插人資料庫中的datetime值都 為 2019-01-22 09:01:23。
4、使用now來輸人當前系統的日期和時間。
timestamp型別
timestamp型別用於表示日期和時間,它的顯示形式與datetime相同但取值範圍比datetime小。
在此,介紹幾種timestamp型別與datatime型別不同的形式:
1、使用current_timestamp輸人系統當前日期和時間。
2、輸人null時系統會輸人系統當前日期和時間。
3、無任何輸人時系統會輸入系統當前日期和時間。
時間函式:
select now(); 當前年月日時間 2022-4-15 13:35:50
select day (now()); 當前月份的第幾天 15
select date (now()); 當前年月日 2022-4-15
select time (now()); 當前時間 13:35:50
select year (now()); 當前年份 2022
select month (now()); 當前月份 4
select current_date(); 當前年月 2022-4-15
select current_time(); 當前時間 13:35:50
select current_timestamp(); 當前年月日時間 2022-4-15 13:35:50
select addtime('14:23:12','01:02:01'); 兩個時間相加 15:25:13
select date_add(now(),interval 1 day); 當前時間的後一天2022-4-16 13:35:50
select date_add(now(),interval 1 month);當前時間的後一月2022-5-15 13:35:50
select date_sub(now(),interval 1 day); 當前時間的前一天2022-4-14 13:35:50
select date_sub(now(),interval 1 month);當前時間的前一月2022-3-15 13:35:50
select datediff('2019-07-22','2019-05-05'); 兩個時間點中間有多少天78
資料庫知識補充 2 資料庫查詢優化
常用的從以下幾個方面入手 一 查詢語句 這是只要懂資料庫的都知道的 這就是不多說了 二。建立索引 今天 2010 9 13 真正的體會到了索引的重要性,我負責公司的乙個管理系統 需要統計大量資料,之前查詢速度一直很慢 被老闆罵了 想了很久的怎麼解決這個問題 多列索引時,一定注意建立索引的順序 索引是...
javaWeb知識之 MySQL資料庫
什麼是sql注入,如何防止sql注入?所謂的sql注入就是攻擊者將命令插入到web表單的輸入域或者頁面請求的查詢字串,欺騙伺服器,執行惡意的sql命令,在某些表單中,使用者輸入的內容直接用來構造動態sql命令,或者作為儲存過程的輸入引數,這類表單特別容易受到sql注入式攻擊。假如某個 使用賬戶名密碼...
資料庫2之 庫的操作
1.資料庫的建立 語法 create database if no exists db name create specitification create specification create specification default character set charset name d...