QUARTER(date)
Returns the quarter of the year for date, in the range 1 to 4.
返回日期的一年中的季度,範圍爲1到4。
ADDDATE(d,n)(date)
計算起始日期 d 加上 n 天的日期
SELECT ADDDATE(“2017-06-15”, INTERVAL 10 DAY);
->2017-06-25
DATEDIFF(d1,d2)
計算日期 d1->d2 之間相隔的天數
SELECT DATEDIFF(‘2001-01-01’,‘2001-02-02’)
-> -32
DATE_SUB(date,INTERVAL expr type)
函數從日期減去指定的時間間隔。
Orders 表中 OrderDate 字段減去 2 天:
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders
DAY(d)
返回日期值 d 的日期部分
SELECT DAY(“2017-06-15”);
-> 15
DAYNAME(d)
返回日期 d 是星期幾,如 Monday,Tuesday
SELECT DAYNAME(‘2011-11-11 11:11:11’)
->Friday
DAYOFMONTH(d)
計算日期 d 是本月的第幾天
SELECT DAYOFMONTH(‘2011-11-11 11:11:11’)
->11
DAYOFWEEK(d)
日期 d 今天是星期幾,1 星期日,2 星期一,以此類推
SELECT DAYOFWEEK(‘2011-11-11 11:11:11’)
->6
DAYOFYEAR(d)
計算日期 d 是本年的第幾天
SELECT DAYOFYEAR(‘2011-11-11 11:11:11’)
->315
今天
select * from 表名 where to_days(時間字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 時間字段名) <= 1
最近7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(時間字段名)
查詢本週
SELECT * FROM mrt_product_out ou WHERE YEARWEEK(date_format(ou.out_Date,'%Y-%m-%d')) = YEARWEEK(now());
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(時間字段名)
本月
SELECT
*
FROM
表名
WHERE
DATE_FORMAT(時間字段名, ‘ % Y % m’) = DATE_FORMAT(CURDATE(), ‘ % Y % m’)
上一月
SELECT
*
FROM
表名
WHERE
PERIOD_DIFF(
date_format(now(), ‘ % Y % m’),
date_format(時間字段名, ‘ % Y % m’)
) = 1
同時,再附上 一個 mysql官方的相關document
#查詢本季度數據
SELECT
*
FROM
`ht_invoice_information`
WHERE
QUARTER (create_date) = QUARTER (now());
#查詢上季度數據
SELECT
*
FROM
`ht_invoice_information`
WHERE
QUARTER (create_date) = QUARTER (
DATE_SUB(now(), INTERVAL 1 QUARTER)
);
#查詢本年數據
select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
#查詢上年數據
SELECT
*
FROM
`ht_invoice_information`
WHERE
YEAR (create_date) = YEAR (
date_sub(now(), INTERVAL 1 YEAR)
);
查詢當前這周的數據
SELECT
NAME,
submittime
FROM
enterprise
WHERE
YEARWEEK(
date_format(submittime, '%Y-%m-%d')
) = YEARWEEK(now());
查詢上週的數據
SELECT
NAME,
submittime
FROM
enterprise
WHERE
YEARWEEK(
date_format(submittime, '%Y-%m-%d')
) = YEARWEEK(now()) - 1;
查詢當前月份的數據
SELECT
NAME,
submittime
FROM
enterprise
WHERE
date_format(submittime, '%Y-%m') = date_format(now(), '%Y-%m')
查詢距離當前現在6個月的數據
SELECT
NAME,
submittime
FROM
enterprise
WHERE
submittime BETWEEN date_sub(now(), INTERVAL 6 MONTH)
AND now();
查詢上個月的數據
SELECT
NAME,
submittime
FROM
enterprise
WHERE
date_format(submittime, '%Y-%m') = date_format(
DATE_SUB(curdate(), INTERVAL 1 MONTH),
'%Y-%m'
)
SELECT
*
FROM
` user `
WHERE
DATE_FORMAT(pudate, ' %Y%m ') = DATE_FORMAT(CURDATE(), ' %Y%m ');
SELECT
*
FROM
USER
WHERE
WEEKOFYEAR(
FROM_UNIXTIME(pudate, '%y-%m-%d')
) = WEEKOFYEAR(now()) SELECT
*
FROM
USER
WHERE
MONTH (
FROM_UNIXTIME(pudate, ' %y-%m-%d ')
) = MONTH (now()) SELECT
*
FROM
[ USER ]
WHERE
YEAR (
FROM_UNIXTIME(pudate, ' %y-%m-%d ')
) = YEAR (now())
AND MONTH (
FROM_UNIXTIME(pudate, ' %y-%m-%d ')
) = MONTH (now()) SELECT
*
FROM
[ USER ]
WHERE
pudate BETWEEN 上月最後一天
AND 下月第一天
WHERE
date(regdate) = curdate();
SELECT
*
FROM
test
WHERE
YEAR (regdate) = YEAR (now())
AND MONTH (regdate) = MONTH (now())
AND DAY (regdate) = DAY (now()) SELECT
date(c_instime),
curdate()
FROM
`t_score`
WHERE
1
LIMIT 0,
30