mysql查詢一天,查詢一周,查詢乙個月的資料

2021-08-20 21:17:16 字數 3954 閱讀 6298

查詢一天:

時間戳select * from

table

where to_days(column_time) = to_days(now());

日期格式

select * from

table

where

date(column_time) = curdate();

查詢一周:

select * from

table

where date_sub(curdate(), interval

7day) <= date(column_time);

查詢乙個月:

select * from

table

where date_sub(curdate(), interval

1month) <= date(column_time);

mysql的日期和時間函式

查詢選擇所有 date_col 值在最後 30 天內的記錄。

mysql> select something from tbl_name

where to_days(now()) - to_days(date_col) <= 30; //真方便,以前都是自己寫的,竟然不知道有這,失敗.

dayofweek(date)

返回 date 的星期索引(1 = sunday, 2 = monday, … 7 = saturday)。索引值符合 odbc 的標準。

mysql> select dayofweek(』1998-02-03』);

-> 3

weekday(date)

返回 date 的星期索引(0 = monday, 1 = tuesday, … 6 = sunday):

mysql> select weekday(』1998-02-03 22:23:00』);

-> 1

mysql> select weekday(』1997-11-05』);

-> 2

dayofmonth(date)

返回 date 是一月中的第幾天,範圍為 1 到 31:

mysql> select dayofmonth(』1998-02-03』);

-> 3

dayofyear(date)

返回 date 是一年中的第幾天,範圍為 1 到 366:

mysql> select dayofyear(』1998-02-03』);

-> 34

month(date)

返回 date 中的月份,範圍為 1 到 12:

mysql> select month(』1998-02-03』);

-> 2

dayname(date)

返回 date 的星期名:

mysql> select dayname(「1998-02-05」);

-> 』thursday』

monthname(date)

返回 date 的月份名:

mysql> select monthname(「1998-02-05」);

-> 』february』

quarter(date)

返回 date 在一年中的季度,範圍為 1 到 4:

mysql> select quarter(』98-04-01』);

-> 2

week(date)

week(date,first)

對 於星期日是一周中的第一天的場合,如果函式只有乙個引數呼叫,返回 date 為一年的第幾周,返回值範圍為 0 到 53 (是的,可能有第 53 周的開始)。兩個引數形式的 week() 允許你指定一周是否以星期日或星期一開始,以及返回值為 0-53 還是 1-52。 這裡的乙個表顯示第二個引數是如何工作的:

值 含義

0 一周以星期日開始,返回值範圍為 0-53

1 一周以星期一開始,返回值範圍為 0-53

2 一周以星期日開始,返回值範圍為 1-53

3 一周以星期一開始,返回值範圍為 1-53 (iso 8601)

mysql> select week(』1998-02-20』);

-> 7

mysql> select week(』1998-02-20』,0);

-> 7

mysql> select week(』1998-02-20』,1);

-> 8

mysql> select week(』1998-12-31』,1);

-> 53

注意,在版本 4.0 中,week(#,0) 被更改為匹配 usa 曆法。 注意,如果一周是上一年的最後一周,當你沒有使用 2 或 3 做為可選引數時,mysql 將返回 0:

mysql> select year(』2000-01-01』), week(』2000-01-01』,0);

-> 2000, 0

mysql> select week(』2000-01-01』,2);

-> 52

你 可能會爭辯說,當給定的日期值實際上是 1999 年的第 52 周的一部分時,mysql 對 week() 函式應該返回 52。我們決定返回 0 ,是因為我們希望該函式返回「在指定年份中是第幾周」。當與其它的提取日期值中的月日值的函式結合使用時,這使得 week() 函式的用法可靠。 如果你更希望能得到恰當的年-周值,那麼你應該使用引數 2 或 3 做為可選引數,或者使用函式 yearweek() :

mysql> select yearweek(』2000-01-01』);

-> 199952

mysql> select mid(yearweek(』2000-01-01』),5,2);

-> 52

year(date)

返回 date 的年份,範圍為 1000 到 9999:

mysql> select year(』98-02-03』);

-> 1998

yearweek(date)

yearweek(date,first)

返回乙個日期值是的哪一年的哪一周。第二個引數的形式與作用完全與 week() 的第二個引數一致。注意,對於給定的日期引數是一年的第一周或最後一周的,返回的年份值可能與日期引數給出的年份不一致:

mysql> select yearweek(』1987-01-01』);

-> 198653

注意,對於可選引數 0 或 1,周值的返回值不同於 week() 函式所返回值(0), week() 根據給定的年語境返回周值。

hour(time)

返回 time 的小時值,範圍為 0 到 23:

mysql> select hour(』10:05:03』);

-> 10

minute(time)

返回 time 的分鐘值,範圍為 0 到 59:

mysql> select minute(』98-02-03 10:05:03』);

-> 5

second(time)

返回 time 的秒值,範圍為 0 到 59:

mysql> select second(』10:05:03』);

-> 3

period_add(p,n)

增加 n 個月到時期 p(格式為 yymm 或 yyyymm)中。以 yyyymm 格式返回值。 注意,期間引數 p 不是 乙個日期值:

mysql> select period_add(9801,2);

-> 199803

period_diff(p1,p2)

返回時期 p1 和 p2 之間的月數。p1 和 p2 應該以 yymm 或 yyyymm 指定。 注意,時期引數 p1 和 p2 不是 日期值:

mysql> select period_diff(9802,199703);

-> 11

mysql查詢一天,查詢一周,查詢乙個月的資料

查詢一天 select from table where to days column time to days now select from table where date column time curdate 查詢一周 select from table where date sub cu...

mysql查詢一天,一周,乙個月內的資料

查詢一天 select from 表名 where to days 時間欄位名 to days now select from 表名 where date 時間欄位名 curdate 昨天 select from 表名 where to days now to days 時間欄位名 1 7天 sel...

mysql查詢一天內,一周,乙個月內的消費記錄

查詢一天 select from 表名 where to days 時間欄位名 to days now select from 表名 where date 時間欄位名 curdate 昨天 select from 表名 where to days now to days 時間欄位名 1 7天 sel...