今天写了一个坑爹的需求,我要检索出本星期的数据……。
本来是很简单,只要
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数据,可以自己导入或者再加工,内容包含表结构,字段包含ID,分类代码,名称,父类ID,是否有子类等,如有需要可以下载。数据量大概有2300多条
Educoder题目:MySQL开发技巧 - 批量数据入库及检索答案解析.md
mysql实现全文检索mysql实现全文检索mysql实现全文检索mysql实现全文检索mysql实现全文检索mysql实现全文检索mysql实现全文检索mysql实现全文检索
MySQL 中国省市区SQL表数据
基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计
#资源达人分享计划#
网上下载的不是那么全,数据又不是最新的,自己制作了一个,共享给大家!2015最新中国省市地区数据表,最新最全
一个mysql数据库数据同步至oracle数据库代码,同时修改mysql数据表标识。
“串口数据采集入MySQL数据库”软件是传感器网络记录数据的一般工具。最主要核心功能是把串口上接收到的数据,以字符串数据形式直接写入MySQL数据库中的数据表的某一个字符型字段中。当计算机的某个COM口有字符串...
mysql 查询本周、上周、本月、上个月份的数据 mysql 查询本周、上周、本月、上个月份的数据 mysql 查询本周、上周、本月、上个月份的数据
简易博客检索系统使用前后端分离,前端使用 Vue ,后端使用 SpringBoot 数据库 MySQL 检索使用 ElasticSearch 同步数据使用 logstash 基于Springboot + ElasticSearch +Vue+MySQL构建的博客检索系统 项目经过严格...
包含中国的省市区县的mysql表
里面有七百多万条测试数据,可以用来测试慢查询、索引优化、联合索引,可以用来练习索引,存储过程,或者用来练习优化mysql等操作。
MYSQL高性能全文检索介绍-E文版。PDF文件。
datax数据从hive表导入mysql表,数据缺失解决
MySQL数据库的创建、查看、删除、使用命令。 表结构创建和修改、表约束的创建和修改; 表数据的插入、删除和修改; 表联系的创建和修改。
mysql数据的检索和插入.pdf
MySQL检索表记录实操题