首頁 > 軟體

MySQL datetime型別與時間、日期格式字串大小比較的方法

2022-11-15 14:02:04

一、前提

1、MySQL版本資訊:

MySQL版本:8.0.27

注意:其他版本(主要5.x版本未驗證)

2、表欄位:

定義列

CREATE TABLE
IF NOT EXISTS `user` (
   id INT NOT NULL PRIMARY KEY auto_increment COMMENT 'id',
   user_name VARCHAR (16) NULL COMMENT '使用者名稱',
   real_name VARCHAR (10) NULL COMMENT '真實姓名',
   age INT UNSIGNED NULL COMMENT '年齡',
   create_time datetime NULL COMMENT '建立時間',
   create_by VARCHAR (16) NULL COMMENT '建立人',
   modify_time datetime NULL COMMENT '修改時間',
   modify_by VARCHAR (16) NULL COMMENT '修改人',
   deleted CHAR (1) DEFAULT 'F' NOT NULL COMMENT '刪除標識:F-未刪除,T-已刪除'
)

表中資料:

二、使用>、<比較

1.  日期格式比較:

  •  大於>
select * from USER t where t.create_time > '2022-04-04';

結果集:

重點注意:id為2的記錄,建立時間為'2022-04-04 00:00:00',該記錄沒有查詢到,

說明 create_time > '2022-04-04',實際上是取建立時間在'2022-04-04 00:00:00‘之後的資料。

  • 小於<
select * from USER t where t.create_time < '2022-04-04';

結果集:

結果集只有3號建立的資料,說明create_time < '2022-04-04',實際是取建立時間在'2022-04-04 00:00:00'之前的資料。

總結:datetime型別資料,使用使用日期格式資料時,系統會預設將日期補全成 ‘00:00:00’的時間進行計算。

2. 時間格式

大於>

select * from USER t where t.create_time > '2022-04-04 00:00:01';

  • 小於<
select * from USER t where t.create_time < '2022-04-04 00:00:01';

三、between and

1. 日期格式

select * from USER t where t.create_time BETWEEN '2022-04-04' and '2022-04-04'

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04'
AND '2022-04-05'

2. 時間格式

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04 00:00:00'
AND '2022-04-04 00:00:00'

SELECT
   *
FROM
   USER t
WHERE
   t.create_time BETWEEN '2022-04-04 00:00:00'
AND '2022-04-05 00:00:00'

四、總結

 對於datetime型別資料而言,系統預設將日期當做'00:00:00'的時間來處理,>、<不取邊界值,而between and附帶邊界值。即:between and 等價於 >= ... <=...

到此這篇關於MySQL datetime型別與時間、日期格式字串大小比較的文章就介紹到這了,更多相關mysql日期格式字串大小比較內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com