除了对文本字符串进行处理外,对日期处理是最常用的了,年、月、周、日等等,同时在日常工作报表中月报、周报、日报这样的报表也是最常见了。

 #二、mysql对日期的处理
SELECT #具体某一天
DATE_FORMAT("2016-01-01","%d") AS 日1,
DAY("2016-01-01") AS 日2,
DATE_FORMAT("2016-01-01","%x%v")AS 年周,
CURRENT_DATE AS 当天日期,
LAST_DAY(CURRENT_DATE) AS 本月最后一天,
DATE_ADD(LAST_DAY(CURRENT_DATE),INTERVAL 1 DAY) AS 下月第一天,
DATE_ADD(DATE_ADD(LAST_DAY(CURRENT_DATE),INTERVAL 1 DAY),INTERVAL -1 MONTH) AS 本月第一天,
DATE_ADD(DATE_ADD(LAST_DAY(CURRENT_DATE),INTERVAL 1 DAY),INTERVAL -2 MONTH) AS 上月第一天,
DATE_ADD(CURRENT_DATE,INTERVAL -3 DAY) AS 往前3天,
DATE_ADD(CURRENT_DATE,INTERVAL -1 DAY) AS 往前1天,
DATE_ADD(CURRENT_DATE,INTERVAL -1 MONTH) AS 上月今天,
TIMESTAMPDIFF(DAY,"2016-05-28","2016-06-01") AS 相差天数 SELECT # 某周
CURRENT_DATE AS 今日,CURDATE() AS 今日,
DATE_FORMAT(CURRENT_DATE,'%w') AS 本月第几周,
SUBDATE(CURRENT_DATE,DATE_FORMAT(CURRENT_DATE,'%w')) AS 上周日,
SUBDATE(CURRENT_DATE,DATE_FORMAT(CURRENT_DATE,'%w')-1) AS 本周周一,
DATE_ADD(SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')-1),INTERVAL -1 WEEK) AS 上周周一,# interval -12周为本周一往前推12周
DATE_FORMAT(CURRENT_DATE,"%x%v") AS 年周 ,DATE_ADD(CURRENT_DATE,INTERVAL -1 WEEK) AS 上周的今天, SELECT # 具体某一月
DATE_FORMAT(CURRENT_DATE,"%Y%m") AS 年月,
DATE_ADD(CURRENT_DATE,INTERVAL -1 MONTH) AS 上月今天,
DATE_FORMAT(DATE_ADD(CURRENT_DATE,INTERVAL -1 MONTH),"%Y%m") AS 上月,
PERIOD_DIFF(DATE_FORMAT("2016-06-01","%Y%m"),DATE_FORMAT("2016-05-28","%Y%m")) AS 相差月份_不考虑天数, #仅比较月份
PERIOD_DIFF(DATE_FORMAT(CURRENT_DATE,"%Y%m"),DATE_FORMAT(DATE_ADD(CURRENT_DATE,INTERVAL -1 MONTH),"%Y%m")) AS 相差月份_不考虑天数, #仅比较月份,
TIMESTAMPDIFF(MONTH,"2016-05-05","2016-06-06") AS 相差月数_考虑天数a,
TIMESTAMPDIFF(MONTH,"2016-05-05","2016-06-04") AS 相差月数_考虑天数b

日期处理函数

1、以年月为单位,计算每个城市每个月的金额

 SELECT city AS 城市,DATE_FORMAT(order_time,"%Y%m") AS 年月,SUM(pay_money) AS 金额
FROM test_a03order AS a
GROUP BY city,DATE_FORMAT(order_time,"%Y%m")

年月为单位

2、以年周为单位计算每个城市每个周的金额

 SELECT city AS 城市,DATE_FORMAT(order_time,"%x%v") AS 年周,SUM(pay_money) AS 金额
FROM test_a03order AS a
GROUP BY city,DATE_FORMAT(order_time,"%x%v")

年周为单位

3、以日为单位计算每个城市每日金额

 SELECT city AS 城市,DATE(order_time) AS 订单日,SUM(pay_money) AS 金额
FROM test_a03order AS a
GROUP BY city,DATE(order_time)

以日为单位

最新文章

  1. 如何用python在Windows系统下,生成UNIX格式文件
  2. MySql数据库忘记root密码
  3. Ethernet & IEEE 802.3 802.X 802.1ag-MEP
  4. C#高级知识点概要(1) - 委托和事件
  5. [Network]Introduction and Basic concepts
  6. Windows Form简易计算器实现(下)
  7. C++11 学习 间隔更新中
  8. AngularJS -- Bootstrap(启动器)
  9. css走过的坑
  10. 学习Python第五天
  11. servlet 表单加上multipart/form-data后request.getParameter获取NULL(已解决)
  12. Java 基础功底
  13. Amazon SES SPF和DKIM设置教程
  14. golang channel 的使用
  15. SCCM2012安装、配置
  16. AGC 016 C - +/- Rectangle
  17. Delphi xe---FIREDAC
  18. 聊天软件项目TCP升级版
  19. Git merge 和 rebase 进一步比较
  20. XHTML教会我的一些东西-1

热门文章

  1. 转:office 2016最新安装及激活教程(KMS)
  2. hdu 1068 Girls and Boys 二分图的最大匹配
  3. Net中的代码规范工具及使用
  4. VI使用说明 (转)
  5. Android UI开发第四十三篇——使用Property Animation实现墨迹天气3.0引导界面及动画实现
  6. Memcache安装与使用
  7. 数据结构:最小生成树--Kruskal算法
  8. Mac环境,React native错误解决方案
  9. Ubuntu PPPoE拨号上网指定网卡
  10. Flask简介