mysql的時間最晚日期 MySQL的時間 日期型

2021-10-20 23:24:24 字數 3066 閱讀 4419

mysql的時間、日期型

mysql中表示時間值的有date、時間型別為datetime、date、timestamp、time和year。每個時間型別有乙個有效值範圍和乙個「零」值,當指定不合法的mysql不能表示的值時使用「零」值。

如果在資料表中插入乙個不合法的日期,那麼mysql將給出警告或提示mysql語法錯誤。不過可以使用allow_invalid_dates sql模式讓mysql接受某些日期,例如'1999-11-31'。

建立資料表,測試時間資料型別:

create table `date_test`(

`date_year` year,    -- 格式:yyyy 或yy

`date_date` date,    -- 格式:yyyy-mm-dd

`date_time` time,    -- 格式:hh:mm:ss

`date_datetime` datetime,

-- 格式:yyyy-mm-dd空格hh:mm:ss

`date_timestamp` timestamp

-- 格式:yyyy-mm-dd空格hh:mm:ss

)charset utf8 comment '測試時間資料表';

當你想要儲存乙個「可能錯誤的」使用者已經在資料庫中指定(例如,以web形式)用於將來處理的值時很有用。在這種模式下,mysql只驗證月範圍為從0到12,日範圍為從0到31。這些範圍可以包括零,因為mysql允許在date或datetime列儲存日/月和日是零的日期。這在應用程式需要儲存乙個你不知道確切日期的生日時非常有用。在這種情況下,只需要將日期儲存為'1999-00-00'或'1999-01-00'。

-- 插入資料測試:

insert into `date_test` values

-- 時間日期型資料:錄入的時候,都要加上引號

('2018',        -- year型別

'2018-9-26',        -- date型別

'19:18:29',        -- time型別

'2018-9-26 10:15:16',    -- datetime型別

'2018-9-26 10:15:16'    -- timestamp型別

注意如果儲存此類日期,date_sub()或date_add等需要完整日期的函式不會得到正確的結果。(如果你不想在日期**現零,可以使用no_zero_in_date sql模式)。

'yyyy-mm-dd hh:mm:ss'或'yy-mm-dd hh:mm:ss'格式的字串。允許「不嚴格」語法:任何標點符都可以用做日期部分或時間部分之間的間割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等價的。

insert into `date_test` values

-- 時間日期型資料:錄入的時候,都要加上引號

('09',        -- year型別

'2018-9-26',        -- date型別

'-3 19:18:29',        -- time型別

'2018-9-26 10:15:16',    -- datetime型別

'2018-9-26 10:15:16'    -- timestamp型別

'yyyy-mm-dd'或'yy-mm-dd'格式的字串。這裡也允許使用「不嚴格的」語法。例如,'98-12-31'、'98.12.31'、'98/12/31'和'98@12@31'是等價的。

insert into `date_test` values

-- 時間日期型資料:錄入的時候,都要加上引號

('69',        -- year型別

'2018-9-26',        -- date型別

'-3 19:18:29',        -- time型別

'2018-9-26 10:15:16',    -- datetime型別

'2018-9-26 10:15:16'    -- timestamp型別

'yyyymmddhhmmss'或'yymmddhhmmss'格式的沒有間割符的字串,假定字串對於日期型別是有意義的。例如,'19970523091528'和'970523091528'被解釋為'1997-05-23 09:15:28',但'971122129015'是不合法的(它有乙個沒有意義的分鐘部分),將變為'0000-00-00 00:00:00'。

'yyyymmdd'或'yymmdd'格式的沒有間割符的字串,假定字串對於日期型別是有意義的。例如,'19970523'和'970523'被解釋為 '1997-05-23',但'971332'是不合法的(它有乙個沒有意義的月和日部分),將變為'0000-00-00'。

yyyymmddhhmmss或yymmddhhmmss格式的數字,假定數字對於日期型別是有意義的。例如,19830905132800和830905132800被解釋為 '1983-09-05 13:28:00'。

yyyymmdd或yymmdd格式的數字,假定數字對於日期型別是有意義的。例如,19830905和830905被解釋為'1983-09-05'。

-- mysql8.0 將timestamp型別,自動跟隨更新預設不更新

-- 更改為:自動跟隨更新:

alter table date_test

modify    -- 更新表資料型別

date_timestamp -- 列名

timestamp -- 新資料型別

default current_timestamp -- 預設值

on update current_timestamp -- 跟隨更新

·         函式返回的結果,其值適合datetime、date或者timestamp上下文,例如now()或current_date。mysql不接受在日或月列包括乙個零或包含非法日期值的時間戳值。該規則的唯一例外是特殊值'0000-00-00 00:00:00'。你可以非常靈便地確定什麼時候初始化和更新timestamp和對哪些列進行初始化和更新

MySql日期時間

mysql獲取當前日期及日期格式 獲取系統日期 now 格式化日期 date format date,format 注 date 時間字段 string format 日期格式 string create table datetest03 id int auto increment not null...

MySQL 日期時間

now 函式以 yyyy mm dd hh mm ss 返回當前的日期時間,可以直接存到datetime欄位中。curdate 以 yyyy mm dd 的格式返回今天的日期,可以直接存到date欄位中。curtime 以 hh mm ss 的格式返回當前的時間,可以直接存到time欄位中。取得當前...

MySql 日期時間

mysql 日期時間 1 查詢條件 2 常用函式 有 datetime 型別字段 publish time 1 查詢條件 庫中儲存 2004 02 04 格式 where date publish time 2004 02 04 庫中儲存 08 08 08 格式 where date publish...