`

Mysql查询今天/昨天/15天前/上个月/去年/上周每日等函数

阅读更多

 

 

MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看。

查询当前今天的数据 
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) =date_format(now(),'%Y-%m-%d');


查询当前这周的数据 
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 下月第一天

 

############################

默认情况下, 这个 yearweek、WEEK ( 日期 )  是 每把周日,作为一周的开始。

 

 

有的是周日开始,有的是周一开始。而工作中有的时候每周是从周六开始算的,有些数据需要按周统计,那么那种方式比较好呢?

 
通过下面的研究,认为yearweek()是适合的,它返回的是 201311这样的格式。若要把周六当做新的一周的开始,那么就是:
 
select yearweek(DATE_ADD(now(), INTERVAL 1 DAY));
 
mysql> select yearweek(DATE_ADD(now(), INTERVAL 1 DAY));
+-------------------------------------------+
| yearweek(DATE_ADD(now(), INTERVAL 1 DAY)) |
+-------------------------------------------+
|                                    201311 |
+-------------------------------------------+
1 row in set
 
mysql> select yearweek(now());
+-----------------+
| yearweek(now()) |
+-----------------+
|          201310 |
+-----------------+
1 row in set
 
mysql> 

 

 

select yearweek(now() - INTERVAL 1 DAY)    从周1开始本周计算

select yearweek('2015-02-02 11:12:00' - INTERVAL 1 DAY) 

 

############################

 

摘自:http://hideto.javaeye.com/blog/255816

当前week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY)

当前week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) – 5 DAY)

前一week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY)

前一week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY)

前两week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY)

前两week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY)
当前month的第一天:
SELECT concat(date_format(LAST_DAY(now()),’%Y-%m-’),’01′)

当前month的最后一天:
SELECT LAST_DAY(now())

前一month的第一天:
SELECT concat(date_format(LAST_DAY(now() – interval 1 month),’%Y-%m-’),’01′)

前一month的最后一天:
SELECT LAST_DAY(now() – interval 1 month)

前两month的第一天:
SELECT concat(date_format(LAST_DAY(now() – interval 2 month),’%Y-%m-’),’01′)

前两month的最后一天:
SELECT LAST_DAY(now() – interval 2 month)
当前quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),’%Y-%m-’),’01′)

当前quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month)

前一quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6 month),’%Y-%m-’),’01′)

前一quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4 month)

前两quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9 month),’%Y-%m-’),’01′)

前两quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7 month)

UNIX时间戳转换为日期用函数: FROM_UNIXTIME()

  1. select FROM_UNIXTIME(1156219870);  

日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()

  1. Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′); 

 

########################

 

今天

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(时间字段名)

近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

 

#查询本季度数据
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 * FROM ordersrecord WHERE         YEARWEEK(ordertime,1) =YEARWEEK(date_sub(curdate(),interval 7 day),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

 

分享到:
评论

相关推荐

    mysql for liunx 免安装版

    2. 把mysql.tar.gz 复制到对应的/usr/local目录下: Cd /usr/local Tar –xvzf mysql.tar.gz 然后执行 groupadd mysql useradd -g mysql mysql chown -R root:mysql /usr/local/mysql/ chown -R mysql:mysql /usr/...

    php操作mysql查询并返回数组封装函数源码

    这个封装使得开发人员在处理MySQL查询时更加简便,只需一行代码即可完成查询并获取结果集。 描述中提到,我们首先需要创建一个类,这里以`(mysql)`为占位符,实际可能是`Mysql`或类似的命名,表示一个用于数据库...

    .Net/C#连接Mysql数据库Connector/Net MySql.Data.dll 8.20.0+6.9.12

    MySQL Connector/Net ...在项目中引用组件:MySql.Data.dll (记得复制到本地中选择为true / 或直接把MySql.Data.dll复制到debug文件夹下) 在代码中 using MySql.Data.MySqlClient; ......接下来这里就看你表演了。

    Mysql Connector/Net 64位

    这款驱动程序允许.NET框架的应用程序与MySQL数据库进行无缝连接和数据交互,从而实现高效的数据访问和管理。 首先,我们要了解什么是ADO.NET。ADO.NET是微软.NET Framework的一部分,它提供了一组用于访问数据的类...

    linux下启动mysql服务

    ### Linux 下启动、停止与重启 MySQL 服务的知识点详解 #### 一、启动 MySQL 服务的方法 在 Linux 系统中启动 MySQL 数据库服务是非常常见的操作。根据给定的文件内容,主要有以下三种方法来启动 MySQL 服务: 1....

    PHP操作MYSQL函数手册大全

    - **mysql_db_query()**:虽然不推荐使用,这个函数允许你在指定的数据库上执行查询。但它通常被mysql_query替代,因为后者可以处理相同的功能。 5. **获取和显示数据** - **mysql_result()**:这是一个简单的...

    mysql-connector-java.zip 两个版本:5.1.47、8.0.28

    java连接mysql数据库的驱动,里边包含两个版本:5.1.47、8.0.28 也可从以下两个地址免费下载: 1. https://repo1.maven.org/maven2/mysql/mysql-connector-java/ 2. ...

    MySQL中文参考手册.chm

    Win32 上安装 MySQL &lt;br/&gt;4.12.2 在 Win95 /Win98上启动 MySQL &lt;br/&gt;4.12.3 在 NT 上启动 MySQL &lt;br/&gt;4.12.4 在 Win32 上运行 MySQL &lt;br/&gt;4.12.5 用 SSH 从 Win32 连接一个远程MySQL &lt;br/&gt;4.12.6 MySQL-Win32与Unix ...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    SQL 查询优化(提高 MySQL 数据库查询效率的几个技巧) 在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...

    MySQL mysql_query 函数执行SQL语句.docx

    MySQL mysql_query 函数执行 SQL 语句 mysql_query() 函数是 PHP MySQL 函数库中的一种函数,用于向 MySQL 发送并执行 SQL 语句。该函数可以对数据库进行增删改查等操作,並返回执行结果。 参数说明: * query:...

    github.com/go-sql-driver/mysql

    这个驱动为Go程序员提供了一个高效、简洁的方式来与MySQL服务器通信。 首先,我们来了解一下`database/sql`包。它是Go标准库中的一个部分,提供了一个通用的SQL数据库API。通过使用`database/sql`,开发者可以避免...

    MySQL函数大全

    这些函数涵盖了字符串处理、数字处理、日期和时间处理、聚合函数等多个方面,满足了不同场景下的数据处理需求。 字符串函数 字符串函数是 MySQL 中最常用的一类函数,用于处理字符串类型的数据。下面是 MySQL 提供...

    C++实现MySQL分页查询

    以下是一个简单的示例,展示了如何在MFC中创建一个分页查询的按钮事件处理函数: ```cpp void CMyAppView::OnPageChange(int currentPage) { int itemsPerPage = 10; int offset = (currentPage - 1) * ...

    教你如何在Mac上安装mysql数据库

     注意:我下载的是社团版本,mysql版本要和你的MAC版本保持一致。当然,如果以前安装过其他的MYSQL版本,务必先卸载了。 双击mysql-8.0.0-dmr-osx10.11-x86_64.dmg进行解压, 安装。 Continue -&gt; Continue, Agree ...

    详解 Mysql中的delimiter定义及作用

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程、触发器、函数等。 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其解。 其实就是告诉mysql解释器,该段命令...

    C# MySQL Connector/Net Developer Guide

    它为.NET应用程序提供与MySQL数据库交互的必要功能,包括数据查询、事务处理等。 2. 安装和配置:指南详细说明了如何在不同的操作系统和环境下安装MySQL Connector/Net。例如,在Windows 7上,可以通过MySQL ...

    C#通过MySql.Data.dll连接MySql数据库操作

    MySql.Data.dll 下载 实例: /// &lt;summary&gt; /// MySQL数据库操作 /// author:hhm /// date:2012-2-22 /// &lt;/summary&gt; public class MySqlDbHelper { #region 私有变量 private const string defaultConfigKeyName =...

    MySQL递归查询

    MySQL 递归查询实现方法 MySQL 递归查询是指在 MySQL 中实现类似 Oracle Hierarchical Queries 的功能,用于查询树形结构中的所有子节点。由于 MySQL 目前还没有内置的递归查询功能,因此需要使用其他方法来实现。 ...

    mysql函数,将数字金额转成人民币大写

    为了实现这一需求,我们可以自定义一个函数或者利用现有的字符串处理函数。以下是一个关于如何在MySQL中实现这个功能的知识点详解: 1. **自定义MySQL函数** 可以创建一个用户自定义函数(UDF),比如`num_to_rmb`...

    mysql函数-根据经纬度坐标计算距离

    本篇文章将详细介绍如何利用MySQL的内置函数和数学公式来计算两个经纬度坐标点之间的距离。 首先,我们需要了解地球上两点之间的距离计算方法。在地球表面上,两点间的最短距离是大圆航线(Great Circle Distance)...

Global site tag (gtag.js) - Google Analytics