MySQL 中如何判斷一個(gè)時(shí)間是否在當(dāng)天呢?下面將會(huì)介紹兩種方法。
方法一:利用 DATE() 函數(shù)實(shí)現(xiàn)日期比較
DATE() 函數(shù)可將日期和時(shí)間值的時(shí)間部分去除,只保留日期部分。利用 DATE() 函數(shù)將傳入的時(shí)間轉(zhuǎn)換為日期形式,然后和當(dāng)前日期進(jìn)行比較,如果相等則說明傳入的時(shí)間是當(dāng)天的時(shí)間。
例如:
SELECT * FROM table WHERE DATE(datetime_column) = DATE(NOW());
以上 SQL 語(yǔ)句的作用是查詢表中 datetime_column 字段值為當(dāng)天的所有數(shù)據(jù)。
方法二:利用 BETWEEN ... AND ... 實(shí)現(xiàn)時(shí)間區(qū)間比較
利用 BETWEEN ... AND ... 可以判斷一個(gè)時(shí)間是否在指定的時(shí)間區(qū)間內(nèi),即可以比較傳入的時(shí)間是否在今天 00:00:00 到 23:59:59 的范圍內(nèi),如果在范圍內(nèi)則說明傳入的時(shí)間是當(dāng)天的時(shí)間。
例如:
SELECT * FROM table WHERE datetime_column BETWEEN DATE(NOW()) AND DATE_ADD(DATE(NOW()), INTERVAL 1 DAY) - INTERVAL 1 SECOND;
以上 SQL 語(yǔ)句的作用也是查詢表中 datetime_column 字段值為當(dāng)天的所有數(shù)據(jù),其中 DATE_ADD(DATE(NOW()), INTERVAL 1 DAY) 表示當(dāng)前日期加一天,- INTERVAL 1 SECOND 則是為了減去一秒鐘,使得查詢的時(shí)間范圍正好是今天的 00:00:00 到 23:59:59。