GVKun编程网logo

SqlServer 按时间段查询问题(sql server按时间范围查询语句)

17

针对SqlServer按时间段查询问题和sqlserver按时间范围查询语句这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展c#Dappermysql按时间段查询和过滤、JAVA实现按时间段

针对SqlServer 按时间段查询问题sql server按时间范围查询语句这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展c#Dapper mysql按时间段查询和过滤、JAVA实现按时间段查询数据操作、MySql 按时间段查询数据方法、MySql 按时间段查询数据方法(实例说明)等相关知识,希望可以帮助到你。

本文目录一览:

SqlServer 按时间段查询问题(sql server按时间范围查询语句)

SqlServer 按时间段查询问题(sql server按时间范围查询语句)

百度的资料,保存下来:

在写按时间段查询的sql语句的时候 一般我们会这么写查询条件: 

='2010-01-01' and date<='2010-10-1'

但是在实执行sql时些语句会转换成这样:

  where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,也许就会有些明白,

那就是'2010-10-1 0:00:00' 之后的数据例如('2010-10-1:08:25:00')查不到,也就是说2010-10-1的数据查不到。

知道原因了可以修改查询条件为:  

='2010-01-01' and date<='2010-10-1 23:59:59' 或 where date>='2010-01-01' and date<='2010-10-2'

某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放

(1)、例如数据

2009-01-22 21:22:22
2009-01-22 19:21:11
2009-01-22 23:10:22

(2)、用 select * from TABLE where date between '2009-1-22' And '2009-1-22' ,想查日期为2009-1-22的记录,结果查不到

(3)、问题原因

短日期类型默认Time为00:00:00,所以当使用between作限制条件时,就相当于between '2009-1-22 00:00:00' and '2009-1-22 00:00:00',因此就查不出数据。

(4)、解决方法

rush:sql;"> --方案一:对数据库里面的字段进行日期格式转换 select * from tb where convert(varchar(10),riqi,120) = '2009-01-22' --方案二:给日期补全时分秒 select * from tb where riqi between '2009-01-22 00:00:00' and '2009-01-22 23:59:59' --结果 /**//* id riqi ---- ------------------------------------------------------ A 2009-01-22 21:22:22.000 B 2009-01-22 19:21:11.000 C 2009-01-22 23:10:22.000 (所影响的行数为 3 行) */

总结

以上所述是小编给大家介绍的sqlServer 按时间段查询问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小编网站的支持!

c#Dapper mysql按时间段查询和过滤

c#Dapper mysql按时间段查询和过滤

#endregion
        /// <summary>
        /// 根据条件获取集合
        /// </summary>
        /// <param name="id">key</param>
        /// <returns>实体</returns>
        public IEnumerable<models.Model.ScanNubProduct> QueryDateSingle(string datestr)
        {
            if (datestr=="oneday")
            {
               
                    string date =  DateTime.Now.AddDays(-1).ToString("yyyyMMdd");          //昨天时间
                    const string sql = "SELECT *  FROM report_daily_newzsnumtotal_copy WHERE   日期 =@日期" + " and 规格 not like ''36%''" + " and 规格 not like ''21%''";
                    using (MySqlConnection connection = new MySqlConnection(connstr))
                    {
                        connection.Open();
                        return connection.Query<models.Model.ScanNubProduct>(sql, new { 日期 = date });
                    }
            }
            else if(datestr=="week")
            {
                string lastday =  DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
                string weeksday = DateTime.Now.AddDays(-8).ToString("yyyyMMdd");
                //    const string sql = "SELECT *  FROM report_daily_newzsnumtotal_copy WHERE  日期 between  ''20180827''  and ''20180830''";
                //  string where = "WHERE  日期 between  "+ weeksday + " and "+ lastday+ " and 规格 not like 32 and 规格 not like 36 and 规格 not like 21";
                string where = "WHERE  日期 between  " + weeksday + " and " + lastday + " and 规格 not like ''36%''" + " and 规格 not like ''21%''";    //过滤规格为36 和21开头的数据
                return QueryList(where); 
            }
            else
            {
                return null;
            }
            }

 

JAVA实现按时间段查询数据操作

JAVA实现按时间段查询数据操作

这篇文章主要介绍了JAVA实现按时间段查询数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

html / jsp

开始时间:  结束时间: 

js方法:

function timeCheckInfo(page,startTime,endTime,officeVal){ var startTime=$("#startTime").val(); var endTime=$("#endTime").val(); $.ajax({ url: "../../security/base/peoplesafeimg!findPortFolioByTime.action", type: "post", data:{ pagenum:page, startTime:startTime, endTime:endTime, deptid:officeid, // 处室ID来源于默认(页面传值)和下拉框选择 lenian 2018 06 29 depotid:depotid }, dataType: "json", success: function (data) { //alert(JSON.stringify(data)); var dataset = data[0].result; $(dataset).each(function(i,val) { }); }, error:function(){ alert("查询数据失败") } }); }

PeoplesafeimgAction.java

/** * @author lenian 2018 06 12 * 根据时间查询人员画像机务处、运输处、货运处工作量数据并展示 * @param page * @param startTime * @param endTime * @return */ public String findPortFolioByTime(){ page.setPageNo(pagenum); page = (Page>) peopleSafeImgManager.getPortFolioByTime(page, startTime, endTime, deptid, depotid); JSONArray jsonArray = JSONArray.fromObject(page); renderTextJSONGBK(jsonArray.toString()); return null; } PeopleSafeImgManager.java /** * @author lenian 2018 06 12 * 根据时间查询人员画像机务处、运输处、货运处工作量数据并展示 * @param page * @param startTime * @param endTime * @return */ @SuppressWarnings("unchecked") public Page> getPortFolioByTime(Page> page, String startTime, String endTime, Long deptid, Long depotid) { String depotName = null; // 判断当站段登录时,传到后台的depotid为空 if (depotid == null) { Long depot_id = SessionManager.getDepartmentId(); Department department = departmentManager.getobjectById(depot_id); depotName = department.getName();//站段 } else if (depotid != null && depotid != 0) { // 当处室登录,选择其中某个站段进行了查询 Department department = departmentManager.getobjectById(depotid); depotName = department.getName();//站段 } // 根据处室将数据区分开来 lenian 2018 06 25 Department deparent = departmentManager.getobjectById(deptid); // 当处室登录,并且depotid==0,表示查询所有(注:以上操作可示为参数的准备) String sql; if (depotid != null && depotid == 0) { sql = "select spp.id,n" + " sei.name,n" + " spp.id_card,n" + " to_char(spp.time, 'yyyy-MM-dd') time,n" + " spp.ins,n" + " spp.outs,n" + " spp.score,n" + " spp.minute,n" + " spp.column_number,n" + " spp.channel_numbern" + " from Security_Portrait_Portfolio spp, Security_Employee_Info sein" + " where spp.id_card = sei.idcard_num(+) and sei.office_name = '"+ deparent.getName() +"'"; } else { // 1、当处室登录,选择其中某个站段进行了查询; 2、站段登录,获取当前站段ID sql = "select spp.id,n" + " sei.name,n" + " spp.id_card,n" + " to_char(spp.time, 'yyyy-MM-dd') time,n" + " spp.ins,n" + " spp.outs,n" + " spp.score,n" + " spp.minute,n" + " spp.column_number,n" + " spp.channel_numbern" + " from Security_Portrait_Portfolio spp, Security_Employee_Info sein" + " where spp.id_card = sei.idcard_num(+) and spp.depot = '"+ depotName +"' and sei.office_name = '"+ deparent.getName() +"'"; } if (StrUtils.stringQuery(startTime) && StrUtils.stringQuery(endTime)) { sql += "and to_char(spp.time, 'yyyy-MM-dd') between '"+ startTime +"' and '"+ endTime +"'"; } sql += "order by spp.create_time desc"; sqlQuery query = dao.getSession().createsqlQuery(sql); Integer count = Integer.parseInt(dao.getSession() .createsqlQuery("select count(1) from (" + sql + ")") .uniqueResult().toString()); if (page.isAutoCount()) { page.setTotalCount(count); } if (page.isFirstSetted()) { query.setFirstResult(page.getFirst()); } if (page.isPageSizeSetted()) { query.setMaxResults(page.getPageSize()); } query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); page.setResult(query.list()); return page; }

补充知识:Java 实现判断时间是否在某个区间内(如是否在23点到凌晨4点之间)

最近遇到一个需求,就是判断一个时间是否在23点到凌晨4点之间,这个时间段是可以修改的。在网上收了一下发现没有符合我的需求的,就自己琢磨了一下,感觉这样算还是可以的。

思路:

如上图的那个圆形的钟表,可以从开始时间剪断,把钟表的环铺平,此时就变成了一个刻度尺,这样就好比较了

代码块

测试代码:

public static void main(String[] args) { int start = 23; int end = 4; int emp = 24 - start; for (int d = 0; d

输出:

0 1 5 0 2 5 0 3 5 0 4 5 0 5 5 0 6 5 0 7 5 0 8 5 0 9 5 0 10 5 0 11 5 0 12 5 0 13 5 0 14 5 0 15 5 0 16 5 0 17 5 0 18 5 0 19 5 0 20 5 0 21 5 0 22 5 0 23 5 0 0 5

以上这篇JAVA实现按时间段查询数据操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小编。

MySql 按时间段查询数据方法

MySql 按时间段查询数据方法

时间格式为2008-06-16
查询出当天数据:
SELECT * FROM `table` WHERE date(时间字段) = curdate();
查询出当月字段:

SELECT *
FROM `table`
WHERE month( 时间字段) = month( now( ) ) ;
时间格式为1219876…… UNIX时间,只要应用“FROM_UNIXTIME( )”函数
例如查询当月:
SELECT *
FROM `table`
WHERE month( from_unixtime( reg_time ) ) = month( now( ) ) ;
查询上一个月的呢?变通一下!
SELECT *
FROM `table`
WHERE month( from_unixtime( reg_time ) ) = month( now( ) ) -1;


MySql 按时间段查询数据方法(实例说明)

MySql 按时间段查询数据方法(实例说明)

时间格式为2008-06-16
查询出当天数据:
SELECT * FROM `table` WHERE date(时间字段) = curdate();
查询出当月字段:
SELECT *
FROM `table`
WHERE month( 时间字段) = month( now( ) ) ;
时间格式为1219876…… UNIX时间,只要应用“FROM_UNIXTIME( )”函数
例如查询当月:
SELECT *
FROM `table`
WHERE month( from_unixtime( reg_time ) ) = month( now( ) ) ;
查询上一个月的呢?变通一下!
SELECT *
FROM `table`
WHERE month( from_unixtime( reg_time ) ) = month( now( ) ) -1;
就这么简单,复杂的以后再补充!

关于SqlServer 按时间段查询问题sql server按时间范围查询语句的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于c#Dapper mysql按时间段查询和过滤、JAVA实现按时间段查询数据操作、MySql 按时间段查询数据方法、MySql 按时间段查询数据方法(实例说明)的相关信息,请在本站寻找。

本文标签:

上一篇PL/SQL Developer过期的两种解决方法(plsqldeveloper过期了)

下一篇SQL update 多表关联更新的实现代码