首页 » 网站建设 » phpmysql日期统计技巧_mysql日期函数查询

phpmysql日期统计技巧_mysql日期函数查询

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

这里以韶光戳为例。
如果是datetime类型,以下示例请去掉FROM_UNIXTIME函数即可。

-- 本日

phpmysql日期统计技巧_mysql日期函数查询

SELECT FROM `order` WHERE TO_DAYS(FROM_UNIXTIME(`add_time`)) = TO_DAYS(now());

phpmysql日期统计技巧_mysql日期函数查询
(图片来自网络侵删)

-- 昨天

SELECT FROM `order` WHERE TO_DAYS(now()) - TO_DAYS(FROM_UNIXTIME(`add_time`)) = 1;

-- 近7天

SELECT FROM `order` WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= DATE(FROM_UNIXTIME(`add_time`));

-- 近30天

SELECT FROM `order` WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= DATE(FROM_UNIXTIME(`add_time`));

-- 本周

SELECT FROM `order` WHERE YEARWEEK(DATE(FROM_UNIXTIME(`add_time`))) = YEARWEEK(now());

-- 上周

SELECT FROM `order` WHERE YEARWEEK(now()) - YEARWEEK(DATE(FROM_UNIXTIME(`add_time`))) = 1;

-- 本月

SELECT FROM `order` WHERE DATE_FORMAT(FROM_UNIXTIME(`add_time`),'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m');

-- 上月

SELECT FROM `order` WHERE PERIOD_DIFF(DATE_FORMAT(CURDATE(),'%Y%m'), DATE_FORMAT(FROM_UNIXTIME(`add_time`),'%Y%m')) = 1;

-- 本季度

SELECT FROM `order` WHERE QUARTER(FROM_UNIXTIME(`add_time`)) = QUARTER(now());

-- 上季度

SELECT FROM `order` WHERE QUARTER(FROM_UNIXTIME(`add_time`)) = QUARTER(DATE_SUB(now(),INTERVAL 1 QUARTER));

-- 今年

SELECT FROM `order` WHERE YEAR(FROM_UNIXTIME(`add_time`)) = YEAR(now())

-- 去年

SELECT FROM `order` WHERE YEAR(FROM_UNIXTIME(`add_time`)) = YEAR(DATE_SUB(now(),INTERVAL 1 YEAR));

日期函数

以上示例运用到的日期函数

TO_DAYS(date)

给定一个日期date, 返回一个天数 (从年份0开始的天数 )。

SELECT TO_DAYS(now());

-- 737118

UNIX_TIMESTAMP(date)

它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回,即韶光戳。

SELECT UNIX_TIMESTAMP(now());

-- 1519747201

FROM_UNIXTIME(unix_timestamp)

将韶光戳转韶光格式,如:返回'YYYY-MM-DD HH:MM:SS'

SELECT FROM_UNIXTIME(1519755184);

-- 2018-02-28 00:00:01

DATE_SUB(date,INTERVAL expr type)

函数从日期减去指定的韶光间隔。

SELECT DATE_SUB(now(),INTERVAL 1 DAY);

-- 2018-02-27 00:00:01

CURDATE()

将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回。

SELECT CURDATE();

-- 2018-02-28

DATE(expr)

提取日期或韶光日期表达式expr中的日期部分。

SELECT DATE(now());

-- 2018-02-28

DATE_FORMAT(date,format)

根据format 字符串安排date 值的格式。

SELECT DATE_FORMAT(now(),'%Y-%m');

-- 2018-02

YEARWEEK(date)

返回一个日期对应的年或周

SELECT YEARWEEK(now());

-- 201808

PERIOD_DIFF(P1,P2)

返回周期 P1 和 P2 之间的月份数,P1 和P2 的格式该当为YYMM或YYYYMM

SELECT PERIOD_DIFF('201802', '201801')

-- 1

QUARTER(date)

返回date 对应的一年中的季度值,范围是从 1到 4

SELECT QUARTER(now())

-- 1

YEAR(date)

返回date 对应的年份,范围是从1000到9999。

SELECT YEAR(now())

-- 2018

标签:

相关文章

php为无色透明技巧_水货钻石其实也还行

从各种钻石中,可以看到大大小小的“包裹体” 图片来源:参考文献包裹体的种类多样。比钻石形成更早的包裹体,叫“原生包裹体”;与钻石同...

网站建设 2024-12-19 阅读0 评论0

phpstudy发送gbk技巧_php的文件上传

这里首先声明一下这一章的内容比较多,比较难,你要抱着和自己去世磕的态度。细微之处不放过,多敲多练是王道。 学习就像爬山,得一步一步...

网站建设 2024-12-19 阅读0 评论0