随笔-71  评论-5  文章-0  trackbacks-0
 
select SYSDATE(),date_add(create_date, interval 30 minute);



MySQL 为日期增加一个时间间隔:date_add()

set @dt = now();
select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);
select date_add(@dt, interval -1 day); -- sub 1 day

select case when date_add(create_date, interval 30 minute)<SYSDATE()  then 1 else 0 end 
from  table 
where id=?




posted @ 2015-01-08 10:08 藤本蔷薇 阅读(196) | 评论 (0)编辑 收藏


刚刚调试接口,sql 查询时 遇到一个问题,报错  “java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

其原因是数据库字段存在这样的值



百度了下:
这是因为 “0000-00-00 00:00:00”在mysql中是作为一个特殊值存在的,但是在Java中, java.sql.Date 会被视为 不合法的值,被JVM认为格式不正确。

解决办法:

在jdbc的url加上   zeroDateTimeBehavior参数:

datasource.url=jdbc:mysql://localhost:3306/pe?useUnicode=true&characterEncoding=gbk &zeroDateTimeBehavior=convertToNull


   完了过后,报异常

The reference to entity "characterEncoding" must end with the ';' delimiter   

其原因可能是在Properties文件或者xml文件中忘记进行特殊符号的转译了,


      需要把后面的;修噶为&amp;修改为

useUnicode=true&amp;characterEncoding=UTF-8 &amp;zeroDateTimeBehavior=convertToNull 

有以下几类字符要进行转义替换:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号



问题解决





posted @ 2014-12-30 11:37 藤本蔷薇 阅读(209) | 评论 (0)编辑 收藏

Parameter index out of range (1 > number of parameters, which is 0)

刚刚遇到这个错,百度了下,说

应该是调用越界问题吧:
"参数索引越界"(参数不能少于1个)

一般是 sql语句少了问号
sql语句有问题


后来仔细看了下,原来是自己的SQl的where 语句中?我写成了中文的输入法中的? 粗心啊
posted @ 2014-12-26 14:26 藤本蔷薇 阅读(221) | 评论 (0)编辑 收藏
str.append(" left join (
select customer_no,(case  when auth_type=1 then count(route) when auth_type=2 then count(route) when auth_type=3 then count(route) end) as auth_image from h_auth_info where audit_sign=1) h6
");




select  auth_info.customer_no,
(case when auth_info.auth_image=3 then 1 
      when auth_info.auth_image<3 then 0 
end)
as auth_result
from(
select customer_no,
(case  when auth_type=1 then count(route) 
       when auth_type=2 then count(route) 
       when auth_type=3 then count(route) 
 end) 
as auth_image 
from h_auth_info 
where audit_sign=1  and customer_no='18632116655'
)  auth_info
posted @ 2014-12-26 09:14 藤本蔷薇 阅读(183) | 评论 (0)编辑 收藏
  /**
         * 校验银行卡卡号
         * 
@param cardId
         * 
@return
         
*/
        public static boolean checkBankCard(String cardId) {
                 char bit = getBankCardCheckCode(cardId.substring(0, cardId.length() - 1));
                 if(bit == 'N'){
                     return false;
                 }
                 return cardId.charAt(cardId.length() - 1) == bit;
        }
       
        /**
         * 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位
         * 
@param nonCheckCodeCardId
         * 
@return
         
*/
        public static char getBankCardCheckCode(String nonCheckCodeCardId){
            if(nonCheckCodeCardId == null || nonCheckCodeCardId.trim().length() == 0
                    || !nonCheckCodeCardId.matches("\\d+")) {
                //如果传的不是数据返回N
                return 'N';
            }
            char[] chs = nonCheckCodeCardId.trim().toCharArray();
            int luhmSum = 0;
            for(int i = chs.length - 1, j = 0; i >= 0; i--, j++) {
                int k = chs[i] - '0';
                if(j % 2 == 0) {
                    k *= 2;
                    k = k / 10 + k % 10;
                }
                luhmSum += k;           
            }
            return (luhmSum % 10 == 0) ? '0' : (char)((10 - luhmSum % 10) + '0');
        }



   //   测试代码


public class ResTest {
public static void main(String[] args) {
   String reg = "18632116655";
   String data = JsonUtil.toJson(reg);
   String post = HttpClient.post("http://192.168.199.127:8067/openapi/rest/hometop/homeinfo", AESUtil.encrypt(data));
   System.out.println(post);
   System.out.println(AESUtil.decrypt(post));
}
}











/**
* author:qiaoyongjun
* StrNo:用户输入的身份证件号码
* _id:用来承载错误信息的控件ID号,用来进行友好提示
*判断身份证号码格式函数
*公民身份号码是特征组合码,
*排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码
*如果验证通过 返回 true
*/
function isChinaIDCard(StrNo, _Id) {
var error = document.getElementById(_Id);
StrNo = StrNo.toString();
if (StrNo.length == 15) {
if (!isValidDate("19" + StrNo.substr(6, 2), StrNo.substr(8, 2),
StrNo.substr(10, 2), _Id)) {
return false;
}
} else if (StrNo.length == 18) {
if (!isValidDate(StrNo.substr(6, 4), StrNo.substr(10, 2), StrNo
.substr(12, 2), _Id)) {
return false;
}
} else {
error.innerHTML = "";
error.innerHTML = "输入的身份证号码必须为15位或者18位!";
return false;
}
if (StrNo.length == 18) {
var a, b, c
if (!isNumber(StrNo.substr(0, 17))) {
error.innerHTML = "";
error.innerHTML = "身份证号码错误,前17位不能含有英文字母!";
return false;
}
a = parseInt(StrNo.substr(0, 1)) * 7 + parseInt(StrNo.substr(1, 1))
* 9 + parseInt(StrNo.substr(2, 1)) * 10;
a = a + parseInt(StrNo.substr(3, 1)) * 5
+ parseInt(StrNo.substr(4, 1)) * 8
+ parseInt(StrNo.substr(5, 1)) * 4;
a = a + parseInt(StrNo.substr(6, 1)) * 2
+ parseInt(StrNo.substr(7, 1)) * 1
+ parseInt(StrNo.substr(8, 1)) * 6;
a = a + parseInt(StrNo.substr(9, 1)) * 3
+ parseInt(StrNo.substr(10, 1)) * 7
+ parseInt(StrNo.substr(11, 1)) * 9;
a = a + parseInt(StrNo.substr(12, 1)) * 10
+ parseInt(StrNo.substr(13, 1)) * 5
+ parseInt(StrNo.substr(14, 1)) * 8;
a = a + parseInt(StrNo.substr(15, 1)) * 4
+ parseInt(StrNo.substr(16, 1)) * 2;
b = a % 11;
if (b == 2) //最后一位为校验位  
{
c = StrNo.substr(17, 1).toUpperCase(); //转为大写X  
} else {
c = parseInt(StrNo.substr(17, 1));
}
switch (b) {
case 0:
if (c != 1) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:1";
return false;
}
break;
case 1:
if (c != 0) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:0";
return false;
}
break;
case 2:
if (c != "X") {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:X";
return false;
}
break;
case 3:
if (c != 9) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:9";
return false;
}
break;
case 4:
if (c != 8) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:8";
return false;
}
break;
case 5:
if (c != 7) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:7";
return false;
}
break;
case 6:
if (c != 6) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:6";
return false;
}
break;
case 7:
if (c != 5) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:5";
return false;
}
break;
case 8:
if (c != 4) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:4";
return false;
}
break;
case 9:
if (c != 3) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:3";
return false;
}
break;
case 10:
if (c != 2) {
error.innerHTML = "";
error.innerHTML = "身份证号码校验位错:最后一位应该为:2";
return false;
}
}
} else {//15位身份证号  
if (!isNumber(StrNo)) {
error.innerHTML = "";
error.innerHTML = "身份证号码错误,前15位不能含有英文字母!";
return false;
}
}
return true;
}
/**
* 验证身份证件中的日期是否合法有效
* @param iY
* @param iM
* @param iD
* @param _id
* @return
*/
function isValidDate(iY, iM, iD, _id) {
if (iY > 2200 || iY < 1900 || !isNumber(iY)) {
document.getElementById(_id).innerHTML = "";
document.getElementById(_id).innerHTML = "输入身份证号,年度" + iY + "非法!";
return false;
}
if (iM > 12 || iM <= 0 || !isNumber(iM)) {
document.getElementById(_id).innerHTML = "";
document.getElementById(_id).innerHTML = "输入身份证号,月份" + iM + "非法!";
return false;
}
if (iD > 31 || iD <= 0 || !isNumber(iD)) {
document.getElementById(_id).innerHTML = "";
document.getElementById(_id).innerHTML = "输入身份证号,日期" + iD + "非法!";
return false;
}
return true;
}
/**
* 验证是否为数字
* @param oNum
* @return
*/
function isNumber(oNum) {
if (!oNum)
return false;
var strP = /^\d+(\.\d+)?$/;
if (!strP.test(oNum))
return false;
try {
if (parseFloat(oNum) != oNum)
return false;
} catch (ex) {
return false;
}
return true;
}
posted @ 2014-12-21 22:09 藤本蔷薇 阅读(1749) | 评论 (0)编辑 收藏
1.在JSP页面中引入sun的核心标签库
     <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
2.在JSP页面中引入sun的函数标签库
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn"%>
3.判断是否为空
    <c:if test="${!empty map}">
    </c:if>
4.判断长度大于0
    <c:if test="${fn:length(map)>0}">
    </c:if>
注:fn:length(obj),对于空对象也会返回0
posted @ 2014-12-16 11:22 藤本蔷薇 阅读(518) | 评论 (0)编辑 收藏
 不想说技术,只想说——觉得iBATIS还是蛮强大的,嗯,就这句话
posted @ 2014-12-04 18:12 藤本蔷薇 阅读(82) | 评论 (0)编辑 收藏



$('input,select,textarea',$('form[name="my_form"]')).attr('readonly',true);
posted @ 2014-11-28 20:12 藤本蔷薇 阅读(328) | 评论 (0)编辑 收藏
SELECT to_char(add_months(sysdate,to_number(t.month)),'yyyymmddhhmmss')   from customer t
posted @ 2014-11-27 09:28 藤本蔷薇 阅读(1601) | 评论 (0)编辑 收藏
    好多东西用是用了,一直没有太细的研究过,很多细节方面就这么放过了
   比如说,<a href="#"> 与 <a href="javascript:void(0)">

    今天在页面中间实现滑动标签改变块内容时发现
    <a href="#"> 这种写法实现功能时,每次改变块,页面都会从顶部开始,明显不合理

    <a href="javascript:void(0)">才会在当前位置改变块内容
posted @ 2014-11-24 11:03 藤本蔷薇 阅读(126) | 评论 (0)编辑 收藏
仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页