mysql 日期型別計算

2022-09-21 00:03:16 字數 2605 閱讀 3681

在進行按日期統計資料的時候,我們經常需要對日期的開始時間和結束時間有要求;

在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 可以接收任意分隔符的日期,主要是判斷日期是否正確,是否在正確範圍內。但是,不通用的分隔符可讀性差,不建議使...