• inner join ,left join ,right join 以及java时间转换


    1.inner join ,left join 与 right join (from 百度知道)

    例表a
    aid adate
    1    a1
    2    a2
    3    a3
    表b
    bid  bdate
    1     b1
    2     b2
    4     b4

    (1)两个表a,b相连接,要取出id相同的字段

    select * from a inner join b on a.aid = b.bid

    此时的取出的是:
    1 a1 b1
    2 a2 b2

    (2)left join 指:
    select * from a left join b on a.aid = b.bid
    首先取出a表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    3 a3 空字符

    (3)right join是指:
    指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    4 空字符 b4

    2.时间类型以及java时间转换

    时间类型: CST 和 GMT 时间的区别

    GMT(Greenwich Mean Time)代表格林尼治标准时间
    而CST却同时可以代表如下 4 个不同的时区:

      • Central Standard Time (USA) UT-6:00
      • Central Standard Time (Australia) UT+9:30
      • China Standard Time UT+8:00
      • Cuba Standard Time UT-4:00

    以后的编程中为了避免错误,还是不要使用CST时间,而尽量采用GMT时间。

    时间转化:(来源:http://yunnick.iteye.com/blog/1074495)

    (1)String 与 date 转换: String -> date

    String dateStr = "2010/05/04 12:34:23";  
            Date date = new Date();  
            //注意format的格式要与日期String的格式相匹配  
            DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  
            try {  
                date = sdf.parse(dateStr);  
                System.out.println(date.toString());  
            } catch (Exception e) {  
                e.printStackTrace();  
            } 

    Date -> String (日期向字符串转换,可以设置任意的转换格式format)

    String dateStr = "";  
            Date date = new Date();  
            //format的格式可以任意  
            DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  
            DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");  
            try {  
                dateStr = sdf.format(date);  
                System.out.println(dateStr);  
                dateStr = sdf2.format(date);  
                System.out.println(dateStr);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }

    (2)String 与 TimeStamp

    String -> TimeStamp (String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!   如果String为其他格式,可考虑重新解析下字符串,再重组)

        Timestamp ts = new Timestamp(System.currentTimeMillis());  
                String tsStr = "2011-05-09 11:49:45";  
                try {  
                    ts = Timestamp.valueOf(tsStr);  
                    System.out.println(ts);  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  

    TimeStamp -> String  (方法一的优势在于可以灵活的设置字符串的形式。)

    Timestamp ts = new Timestamp(System.currentTimeMillis());  
            String tsStr = "";  
            DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  
            try {  
                //方法一  
                tsStr = sdf.format(ts);  
                System.out.println(tsStr);  
                //方法二  
                tsStr = ts.toString();  
                System.out.println(tsStr);  
            } catch (Exception e) {  
                e.printStackTrace();  
            } 

    (3)Date 与  TimeStamp (两者是父子关系)

    Date -> TimeStamp

        Timestamp ts = new Timestamp(System.currentTimeMillis());  
        Date date = new Date();  
        try {  
             date = ts;  
             System.out.println(date);  
        } catch (Exception e) {  
             e.printStackTrace();  
        }  

    date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中

    TimeStamp -> Date

    父类不能直接向子类转化,可借助中间的String~~~~

       注:使用以下方式更简洁

       Timestamp ts = new Timestamp(date.getTime());

    (4)Long 与 Date转换

    Date -> Long

     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    long timeStart=sdf.parse("2011-09-20 12:30:45").getTime();
    //或者
    long timeStart = new Date().getTime();

    Long -> Date

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = new Date(timeStart); System.out.println(sdf.format(date));

    (5) Calendar和Date的转化

    (1) Calendar转化为Date
    Calendar cal=Calendar.getInstance();
    Date date=cal.getTime();

    (2) Date转化为Calendar
    Date date=new Date();
    Calendar cal=Calendar.getInstance();
    cal.setTime(date);

    3.部分知识:

    (1)js验证输入小数(最高两位小数)

    var pattern =/^[0-9]+([.]d{1,2})?$/;
    objs[i].focus();
    return false;

    (2)js替换除字母数字之外的字符,可判断是否有特殊字符

    var newStr = str.replace(/W|_/g, "") W表示除字母数字下划线之外的字符 /g表示全局,也就是说不会替换一次之后就停止。

    (3)正则表达式部分基本知识:

    d [0-9] 匹配数字
    D [^0-9] 匹配非数字字符
    s [ fx0B] 匹配一个空白字符
    S [^ fx0B] 匹配一个非空白字符
    w [a-zA-Z0-9_] 匹配字母数字和下划线
    W [^a-zA-Z0-9_] 匹配除字母数字下划线之外的字符

    * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。
    + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
    ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
    {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
    {n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
    {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

  • 相关阅读:
    商户网站使用第三方支付的大致原理和实现
    ASP.NET MVC中检测浏览器版本并提示下载更新
    如何选择使用IEnumerable, ICollection, IList
    IEnumerable和IQueryable的区别以及背后的ExpressionTree表达式树
    IEnumerable是集合,IEnumerator是集合的迭代器
    ASP.NET MVC中使用Session来保持表单的状态
    在ASP.NET MVC中实现Select多选
    总结ASP.NET MVC视图页使用jQuery传递异步数据的几种方式
    在ASP.NET MVC4中使用Quartz.NET执行定时任务
    委托, 泛型委托,Func<T>和Action<T>
  • 原文地址:https://www.cnblogs.com/cuiyf/p/3382834.html
Copyright © 2020-2023  润新知