mysql使用between and处理时间区间不包括右边界问题
来源:互联网 发布:苹果8plus数据参数 编辑:程序博客网 时间:2024/06/09 21:58
mysql使用between and处理时间区间不包括右边界问题
最近自己写项目发现mysql使用between and处理时间区间不包括右边界。
SELECT * FROM timeline WHERE username = ‘Allen’ AND logTime BETWEEN ‘2017-04-01’ AND DATE_ADD(‘2017-04-04’,INTERVAL 1 DAY);
在查询的结果中没有发现有2017-04-04的记录,一番查找后发现mysql中对日期的查询对时分秒默认的是 00:00:00,所以显示出来的实际上只是‘2017-04-01 00:00:00’到‘2017-04-04 00:00:00‘,2017-04-04这天的记录是查不到的哦。
解决办法:
1,把and后的日期加一天。
SELECT * FROM timeline WHERE username = ‘Allen’ AND logTime BETWEEN ‘2017-04-01’ AND DATE_ADD(‘2017-04-04’,INTERVAL 1 DAY);
2,把and后的日期字符串拼接成’2017-04-04 23:59:59‘.
3,如果是使用oracle的话用TO_CHAR, TO_DATE函数
if (ValidateUtil.isNotEmpty(searchTO.getDateRange())) { if (ValidateUtil.isNotEmpty(fromDate) && ValidateUtil.isNotEmpty(endDate)) { Date inputFromDt = DateUtil.convertStringToDate(DateUtil.DATE_PATTERN, fromDate); Date inputToDt = DateUtil.convertStringToDate(DateUtil.DATE_PATTERN, endDate); if (inputFromDt.compareTo(inputToDt) == 0) { String inputFromDtStr = DateUtil.convertDateToString(DateUtil.SQL_DATE_PATTERN_YYYY_MM_DD, inputFromDt); sql += " AND TO_CHAR(supt.EVENT_DT,'yyyy-MM-dd') = '" + inputFromDtStr + "'"; } else { String inputFromDtStr = DateUtil.convertDateToString(DateUtil.SQL_DATE_PATTERN_YYYY_MM_DD, inputFromDt); String inputToDtStr = DateUtil.convertDateToString(DateUtil.SQL_DATE_PATTERN_YYYY_MM_DD, inputToDt); sql += " AND supt.EVENT_DT between TO_DATE('" + inputFromDtStr + "','yyyy-MM-dd') and TO_DATE('" + inputToDtStr + "','yyyy-MM-dd')"; } } }
MySQL 日期加减:
DATE_ADD(date,INTERVAL expr type) –加法
DATE_SUB(date,INTERVAL expr type) –减法
阅读全文
0 0
- mysql使用between and处理时间区间不包括右边界问题
- mysql使用between and处理时间区间不包括右边界问题
- mysql使用between and处理时间区间不包括右边界问题
- mysql between and 遇到日期查询边界问题
- mysql between and 遇到日期查询边界问题
- mysql between and 遇到日期查询边界问题
- oracle between and 边界问题
- Oracle between and 边界问题
- Mysql,Between And时间
- mysql的between的边界问题
- mysql的between的边界问题
- SQL between and 包不包括边界
- mysql—BETWEEN AND使用小记
- BETWEEN AND 是闭区间
- between and 时间查询
- mysql update between and
- Mysql 求时间 between 昨天 and 上个月的今天 等时间函数
- UIScrollView 边界问题处理
- IO流简介及方法
- 给定俩个字符串一个S(母串),一个T(子串),有多少种方法从母串中移除字符得到子字符串
- springboot第二天 junit单元测试
- 【比特币】BIP-0009 软叉标准
- SVM之线性不可分
- mysql使用between and处理时间区间不包括右边界问题
- c++ 中vector用法
- 异常:Can't connect to MySQL server (10060)
- js 阿拉伯数字转中文大写货币
- Ubuntu 16.04无线wifi频繁掉线及信号不足解决办法
- Cookie测试的测试点
- 微信支付接口-银行官方通道
- 开源C/C++网络库比较
- 第五周 【项目2