今天写了一个坑爹的需求,我要检索出本星期的数据……。
本来是很简单,只要
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now());
就可以了。
但是!!!坑爹的中国的星期跟外国不一样。外国是周日是本日期的第一天,周六是最后一天,但在中国周一是第一天,周日是最后一天。
也就是说你用上述SQL语句查到的本周数据实际上是本周至周六加上个周日的数据。
我把百度翻个遍竟找到的都是同一句查本周数据的SQL,深感坑爹。但是经过我的多种尝试,发现在不用mysql编程并且不改动mysql配置的基础下至少用两句SQL,因为坑爹的周日,
具体实现是这样的,我是在JAVA下实现的,先看句子,下附解释.
if(Calendar.getInstance().get(Calendar.DAY_OF_WEEK) == 1)
{ //判断是否为周日,是的话发这句SQL,不是的话发另一句
pstm = connection.prepareStatement(“SELECT * FROM sign WHERE ((YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week=7) or (YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now())-1 and s_week!=7))”) ;
}
else {
pstm = connection.prepareStatement(“SELECT * FROM sign WHERE YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week!=7″) ;
}
resultSet = pstm.executeQuery();
解释一下:
先判断今天是不是周天,如果是周天的话,刚查询上个星期的数据不包括周天….因为外国的周天算是下个星期开始,中国是本星期结束,所以到周天实际已经进入下个星期了
SQL语句是:SELECT * FROM sign(表名) WHERE ((YEARWEEK(date_format(signTime(时间字段名),’%Y-%m-%d’)) = YEARWEEK(now()) and s_week(记录今天周几的字段,也可直接用函数获得)=7) or (YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now())-1 and s_week!=7))
然后如果不是周天,那么就查询这个星期的数据不包括周天.
SQL语句是:SELECT * FROM sign WHERE YEARWEEK(date_format(signTime,’%Y-%m-%d’)) = YEARWEEK(now()) and s_week!=7
哈哈。半夜之作,还望对大家有所帮……。
JAVA WEB路上的新手,希望能与大家成为朋友,共同交流技术。
本人小站:www.isnail.me
邮箱:isnail@isnail.me
分享到:
相关推荐
本文主要介绍了一种针对海量天文数据的分布式MySQL锥形检索的研究方法,使用数据库中间件技术,通过分库分表的方式将数据存储到分布式数据库集群中,并通过动态索引工具建立伪球面索引,以此来满足锥形检索的需求。...
Educoder题目:MySQL开发技巧 - 批量数据入库及检索答案解析.md
在本案例中,我们讨论的是针对中国省份和城市的MySQL数据库,包含两个关键表:省份表和城市表。 首先,MySQL是一种流行的开源关系型数据库管理系统(RDBMS),它支持SQL语言,广泛应用于网站开发、企业级应用和数据...
MySQL全文检索是一种高效的数据搜索机制,它允许用户执行类似搜索引擎的查询,显著提高了在大量文本数据中寻找特定信息的速度。全文检索在MySQL中主要应用于MyISAM存储引擎,因为MyISAM支持对大表的数据快速读取,...
简易博客检索系统使用前后端分离,前端使用 Vue ,后端使用 SpringBoot 数据库 MySQL 检索使用 ElasticSearch 同步数据使用 logstash 基于Springboot + ElasticSearch +Vue+MySQL构建的博客检索系统 项目经过严格...
“串口数据采集入MySQL数据库”软件是传感器网络记录数据的一般工具。最主要核心功能是把串口上接收到的数据,以字符串数据形式直接写入MySQL数据库中的数据表的某一个字符型字段中。当计算机的某个COM口有字符串...
网上下载的不是那么全,数据又不是最新的,自己制作了一个,共享给大家!2015最新中国省市地区数据表,最新最全
标题 "全球主要国家数据表mysql" 指的是一个专门设计用于MySQL数据库的表格,包含了全球各个国家的主要信息。这个数据表可能包含了各国的基本统计数据,如国家名称、首都、人口、面积、货币、国际电话区号等。这些...
【基于Sphinx+MySQL的千万级数据全文检索】的架构设计着重解决大数据量下的高效全文检索问题。Sphinx是一款源自俄罗斯的开源全文搜索引擎,它在处理海量数据时表现出极高的性能和可扩展性。在DELL PowerEdge 6850...
在IT行业中,数据库管理和数据分析是至关重要的环节。MySQL作为一款广泛应用的关系型数据库管理系统,存储了大量结构化数据,而Elasticsearch则是一款实时分布式搜索和分析引擎,适用于非结构化数据的快速检索。将...
1. **数据准备**:在Excel中整理数据,确保数据格式符合MySQL的数据类型要求,例如日期应为"YYYY-MM-DD"格式,数值无额外字符等。 2. **配置连接**:使用xls2sql工具设置MySQL数据库的连接参数,包括服务器地址、...
MySQL单表2000万数据查询慢解决方案1 本文主要讨论了如何解决MySQL单表2000万数据查询慢的问题,通过将表分区和使用时间触发器来实现数据的优化。 分区设计 在解决方案中,我们使用的是按照8周将单表分为8个区,...
标题中的“中国省市区mysql表”指的是一个包含中国所有省份、城市和区县的数据表,这些数据被组织成适合在MySQL数据库系统中使用的格式。这个数据集通常用于地理定位、物流配送、用户地址管理等场景,是开发涉及地域...
在IT行业中,数据库测试是软件开发过程中的关键环节,尤其是对于大规模系统而言,拥有大量真实世界的测试数据至关重要。本文将围绕“mysql百万级测试数据下载 300W条”这个主题,深入探讨如何处理和利用这样的大数据...
本篇将详细介绍如何使用Shell脚本结合CSV文件批量将数据导入MySQL数据库,以提高工作效率。 首先,`prov.csv` 是一个包含CSV(逗号分隔值)格式的数据文件,这种文件类型常用于存储表格数据,易于读写和处理。在本...
全国银行名称及所在地数据是关于中国银行业金融机构基本信息的重要资源,主要包含了开户行名称、联行号、银行类别编码、所在地市以及所在省份等关键字段。这些数据对于金融行业的研究、数据分析、银行服务优化以及...