在進行按日期統計資料的時候,我們經常需要對日期的開始時間和結束時間有要求;
在mysql中,日期字段如何進行時間的計算呢?
to_days(日期)函式:返回從2023年(公元1年)至指定日期的總天數(只計算日期不計算時間)。
to_days(nows()):將當前日期轉換成距離0年的天數;
我們也可以用它來表示:今天
to_days(日期):只計算日期不計算時間,舉例證明:
我們可以看到:
不管是23:59:59還是00:00:00,2023年2月11日轉換成天數後,都是738562天。
2.1查詢今天的資料
select * from 表名 where to_days(時間欄位名) = to_days(now());
2.2查詢昨天的資料
select * from 表名 where to_days( now( ) ) – to_days( 時間欄位名) <= 1
2.3查詢近7天的資料
select * from 表名 where date_sub(curdate(), interval 7 day) <= date(時間欄位名)
2.4查詢近30天的資料
select * from 表名 where date_sub(curdate(), interval 30 day) <= date(時間欄位名)
2.5查詢本月的資料
select * from 表名 where date_format( 時間欄位名, '%y%m' ) = date_format( curdate() , '%y%m' )
或
select * from 表名 where date_format(欄位名,'%y-%m')=date_format(now(),'%y-%m')
2.6查詢上一月的資料
select * from 表名 where period_diff( date_format( now() , '%y%m' ) , date_format( 時間欄位名, '%y%m' ) ) = 1
或
select * from 表名 where date_format(欄位名,'%y-%m') = date_format(date_sub(curdate(), interval 1 month),'%y-%m')
2.7查詢本季度的資料
select * from 表名 where quarter(時間字段) = quarter(now());
2.8查詢上一季度的資料
select * from 表名 where quarter(時間字段)=quarter(date_sub(now(),interval 1 quarter));
2.9查詢本年的資料
select * from 表名 where year(時間字段)=year(now());
3.0查詢上一年的資料
select * from 表名 where year(欄位名) = year(date_sub(now(),interval 1 year));
3.1查詢本週的資料
select * from 表名 where yearweek(date_format(欄位名,'%y-%m-%d')) = yearweek(now());
3.2查詢上一周的資料
select * from 表名 where yearweek(date_format(欄位名,'%y-%m-%d')) = yearweek(now()) - 1;
3.3查詢近6月的資料
select * from 表名 where 欄位名 between date_sub(now(),interval 6 month) and now();
date_sub(date,interval expr unit)
date:日期型別;
expr:間隔數字(整數:正整數,時間會往前推;負整數,會往後推);
unit:間隔單位。
select sysdate(), date_sub(sysdate(),interval 1 minute)
union
select sysdate(), date_sub(sysdate(),interval -1 minute)
有了這個函式,我們就可以取任何時間區間的日期啦(並且語法和oracle類似)。 mysql日期物件 MySQL日期型別
主要型別 year time date datetime timestamp 日期函式 current date 當前日期 current time 當前時間 now 當前日期和時間,根據字段型別顯示日期或者時間 實驗timetest表結構 datetime 用於表示年月日時分秒,是 date 和 ...
mysql 日期型別
童鞋們好,大家我們聊一下日期型別。名稱位元組 日期格式 零標示用途 datetime 8yyyy mm dd hh mm ss 0000 00 00 00 00 00 可以儲存大範圍的值 從1001 到 9999年 精度為秒。它與時區無關 timestamp 4yyyy mm dd hh mm ss...
MySQL 日期型別
1.datetime 年月日時分秒 格式 yyy mm dd hh mm ss 占用 8位元組 範圍 1000 01 01 00 00 00 到 9999 12 31 23 59 59。tip 可以接收任意分隔符的日期,主要是判斷日期是否正確,是否在正確範圍內。但是,不通用的分隔符可讀性差,不建議使...