知識分享之資料庫(2)

2022-10-10 22:03:18 字數 3138 閱讀 1670

日期與時間型別

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