oracle字符串连接和时间格式处理(附加Calendar简单使用)
来源:互联网 发布:大数据的统计学基础炼 编辑:程序博客网 时间:2024/06/08 05:08
1.<span style="background-color: rgb(248, 248, 248); ">和其他数据库系统类似,</span><a target=_blank href="http://database.51cto.com/art/201010/231973.htm" style="text-indent: 28px; background-color: rgb(248, 248, 248); ">Oracle</a><span style="text-indent: 28px; background-color: rgb(248, 248, 248); ">字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。</span>
2.oracle对对时间格式的数据存贮比较特殊,经常报ora-01861文字与格式字符串不匹配错误,只需在时间类型字段前加to_char进行转换:
3.Calendar在程序开发中使用还是很广泛的,下面只粘贴曾经使用过程序的Calendar应用:
(1)获取本周和上一周:startDate(上一周),endDate(本周)
Calendar cal1 = Calendar.getInstance();cal1.setTime(new Date());Calendar cal2 = Calendar.getInstance();cal2.setTime(new Date());int weekday1 = cal1.get(Calendar.DAY_OF_WEEK) - 1;cal1.add(Calendar.DATE, -weekday1-7*i);int weekday2 = cal2.get(Calendar.DAY_OF_WEEK) - 1;cal2.add(Calendar.DATE, 7-weekday2-7*i);startDate=sdf.format(cal1.getTime());endDate=sdf.format(cal2.getTime());
(2)
package com.vingsoft.dzjc.chart;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class cc {private static SimpleDateFormat bigLongSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSSS"); private static SimpleDateFormat hourSdf = new SimpleDateFormat("HH"); private static SimpleDateFormat minutesSdf = new SimpleDateFormat("mm"); private static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd"); private static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH"); private static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static SimpleDateFormat sdfCh = new SimpleDateFormat("yyyy年MM月dd日"); public static void main(String[] args) throws ParseException {// Calendar c = Calendar.getInstance();// int currentMonth = c.get(Calendar.MONTH) + 1;// if (currentMonth >= 1 && currentMonth <= 3)// c.set(Calendar.MONTH, 0);// else if (currentMonth >= 4 && currentMonth <= 6)// c.set(Calendar.MONTH, 3);// else if (currentMonth >= 7 && currentMonth <= 9)// c.set(Calendar.MONTH, 4);// else if (currentMonth >= 10 && currentMonth <= 12)// c.set(Calendar.MONTH, 9);// c.set(Calendar.DATE, 1);// // System.out.println(shortSdf.format(c.getTime()));for(int i=0;i<2;i++){Calendar cal = Calendar.getInstance();cal.setTime(new Date());int weekday = cal.get(Calendar.DAY_OF_WEEK) - 1;System.out.println(-weekday-7*i+" "+i+" "+weekday);//cal.add(Calendar.DATE, -weekday-7*i);cal.add(Calendar.DATE, 7 - weekday-7*i); System.out.println(shortSdf.format(cal.getTime())); } Calendar c = Calendar.getInstance(); c.add(Calendar.WEEK_OF_YEAR, -1); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");// System.out.println("上周的今天为:" + sf.format(c.getTime())); String date=sdfCh.format(new Date()); System.out.println("********** "+date); System.out.println("********** "+date.substring(5,11));}}
(3)
package com.vingsoft.dzjc.chart;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtilCan {private static SimpleDateFormat bigLongSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSSS"); private static SimpleDateFormat hourSdf = new SimpleDateFormat("HH"); private static SimpleDateFormat minutesSdf = new SimpleDateFormat("mm"); private static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd"); private static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH"); private static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * 获得本周的第一天,即周日 * * @return */ public static Date getCurrentWeekDayStartTime() { Calendar c = Calendar.getInstance(); try { int weekday = c.get(Calendar.DAY_OF_WEEK) - 1; c.add(Calendar.DATE, -weekday); c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00")); } catch (Exception e) { e.printStackTrace(); } return c.getTime(); } /** * 获得本周的最后一天,即本周六 * * @return */ public static Date getCurrentWeekDayEndTime() { Calendar c = Calendar.getInstance(); try { int weekday = c.get(Calendar.DAY_OF_WEEK); c.add(Calendar.DATE, 7 - weekday); c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59")); } catch (Exception e) { e.printStackTrace(); } return c.getTime(); } /** * 获得本天的开始时间,即2012-01-01 00:00:00 * * @return */ public static Date getCurrentDayStartTime() { Date now = new Date(); try { now = shortSdf.parse(shortSdf.format(now)); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 获得本天的结束时间,即2012-01-01 23:59:59 * * @return */ public static Date getCurrentDayEndTime() { Date now = new Date(); try { now = longSdf.parse(shortSdf.format(now) + " 23:59:59"); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 获得本小时的开始时间,即2012-01-01 23:59:59 * * @return */ public static Date getCurrentHourStartTime() { Date now = new Date(); try { now = longHourSdf.parse(longHourSdf.format(now)); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 获得本小时的结束时间,即2012-01-01 23:59:59 * * @return */ public static Date getCurrentHourEndTime() { Date now = new Date(); try { now = longSdf.parse(longHourSdf.format(now) + ":59:59"); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 获得本月的开始时间,即2012-01-01 00:00:00 * * @return */ public static Date getCurrentMonthStartTime() { Calendar c = Calendar.getInstance(); Date now = null; try { c.set(Calendar.DATE, 1); now = shortSdf.parse(shortSdf.format(c.getTime())); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前月的结束时间,即2012-01-31 23:59:59 * * @return */ public static Date getCurrentMonthEndTime() { Calendar c = Calendar.getInstance(); Date now = null; try { c.set(Calendar.DATE, 1); c.add(Calendar.MONTH, 1); c.add(Calendar.DATE, -1); now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59"); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前年的开始时间,即2012-01-01 00:00:00 * * @return */ public static Date getCurrentYearStartTime() { Calendar c = Calendar.getInstance(); Date now = null; try { c.set(Calendar.MONTH, 0); c.set(Calendar.DATE, 1); now = shortSdf.parse(shortSdf.format(c.getTime())); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前年的结束时间,即2012-12-31 23:59:59 * * @return */ public static Date getCurrentYearEndTime() { Calendar c = Calendar.getInstance(); Date now = null; try { c.set(Calendar.MONTH, 11); c.set(Calendar.DATE, 31); now = shortSdf.parse(shortSdf.format(c.getTime())); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前季度的开始时间,即2012-01-1 00:00:00 * * @return */ public static Date getCurrentQuarterStartTime() { Calendar c = Calendar.getInstance(); int currentMonth = c.get(Calendar.MONTH) + 1; Date now = null; try { if (currentMonth >= 1 && currentMonth <= 3) c.set(Calendar.MONTH, 0); else if (currentMonth >= 4 && currentMonth <= 6) c.set(Calendar.MONTH, 3); else if (currentMonth >= 7 && currentMonth <= 9) c.set(Calendar.MONTH, 4); else if (currentMonth >= 10 && currentMonth <= 12) c.set(Calendar.MONTH, 9); c.set(Calendar.DATE, 1); now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00"); } catch (Exception e) { e.printStackTrace(); } return now; } /** * 当前季度的结束时间,即2012-03-31 23:59:59 * * @return */ public static Date getCurrentQuarterEndTime() { Calendar c = Calendar.getInstance(); int currentMonth = c.get(Calendar.MONTH) + 1; Date now = null; try { if (currentMonth >= 1 && currentMonth <= 3) { c.set(Calendar.MONTH, 2); c.set(Calendar.DATE, 31); } else if (currentMonth >= 4 && currentMonth <= 6) { c.set(Calendar.MONTH, 5); c.set(Calendar.DATE, 30); } else if (currentMonth >= 7 && currentMonth <= 9) { c.set(Calendar.MONTH, 8); c.set(Calendar.DATE, 30); } else if (currentMonth >= 10 && currentMonth <= 12) { c.set(Calendar.MONTH, 11); c.set(Calendar.DATE, 31); } now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59"); } catch (Exception e) { e.printStackTrace(); } return now; } public static void main(String args[]) { System.out.println("当前年开始时间:" + longSdf.format(getCurrentYearStartTime())); System.out.println("当前年结束时间:" + longSdf.format(getCurrentYearEndTime())); System.out.println("-------------------"); System.out.println("当前季度开始时间:" + longSdf.format(getCurrentQuarterStartTime())); System.out.println("当前季度结束时间:" + longSdf.format(getCurrentQuarterEndTime())); System.out.println("-------------------"); System.out.println("当前月开始时间:" + longSdf.format(getCurrentMonthStartTime())); System.out.println("当前月结束时间:" + longSdf.format(getCurrentMonthEndTime())); System.out.println("-------------------"); System.out.println("当前周开始时间:" + longSdf.format(getCurrentWeekDayStartTime())); System.out.println("当前周结束时间:" + longSdf.format(getCurrentWeekDayEndTime())); System.out.println("-------------------"); System.out.println("当前天开始时间:" + longSdf.format(getCurrentDayStartTime())); System.out.println("当前天结束时间:" + longSdf.format(getCurrentDayEndTime())); System.out.println("-------------------"); System.out.println("当前时开始时间:" + longSdf.format(getCurrentHourStartTime())); System.out.println("当前时结束时间:" + longSdf.format(getCurrentHourEndTime())); }}
(4)
<span style="white-space:pre"></span> Calendar c1 = Calendar.getInstance(); //本周开始 Calendar c2 = Calendar.getInstance();//本周结束 Calendar c3 = Calendar.getInstance(); //上周开始 Calendar c4 = Calendar.getInstance();//上周结束 Calendar c5 = Calendar.getInstance();//本月开始 Calendar c6 = Calendar.getInstance();//本月结束 Calendar c7 = Calendar.getInstance();//任意月开始 Calendar c8 = Calendar.getInstance();//任意月结束 Date thisMonthStart = null; Date thisMonthEnd = null; Date anyMonthStart = null; Date anyMonthEnd = null; //获取页面查询选择的开始日期和结束日期 try { int weekday1 = c1.get(Calendar.DAY_OF_WEEK) - 1; c1.add(Calendar.DATE, -weekday1); c1.setTime(longSdf.parse(shortSdf.format(c1.getTime()) + " 00:00:00")); int weekday2 = c2.get(Calendar.DAY_OF_WEEK); c2.add(Calendar.DATE, 7 - weekday2); c2.setTime(longSdf.parse(shortSdf.format(c2.getTime()) + " 23:59:59")); int weekday3 = c3.get(Calendar.DAY_OF_WEEK) - 1; c3.add(Calendar.DATE, -weekday3-7*1); c3.setTime(longSdf.parse(shortSdf.format(c3.getTime()) + " 00:00:00")); int weekday4 = c4.get(Calendar.DAY_OF_WEEK); c4.add(Calendar.DATE, 7 - weekday4-7*1); c4.setTime(longSdf.parse(shortSdf.format(c4.getTime()) + " 23:59:59")); c5.set(Calendar.DATE, 1); thisMonthStart = shortSdf.parse(shortSdf.format(c5.getTime())); c6.set(Calendar.DATE, 1); c6.add(Calendar.MONTH, 1); c6.add(Calendar.DATE, -1); thisMonthEnd = longSdf.parse(shortSdf.format(c6.getTime()) + " 23:59:59"); if(time != null && time.equals("anymonth")){ c7.setTime(anymonth_time); c7.set(Calendar.DATE, 1); anyMonthStart = shortSdf.parse(shortSdf.format(c7.getTime())); c8.setTime(anymonth_time); c8.set(Calendar.DATE, 1); c8.add(Calendar.MONTH, 1); c8.add(Calendar.DATE, -1); anyMonthEnd = longSdf.parse(shortSdf.format(c8.getTime()) + " 23:59:59"); } } catch (Exception e) { e.printStackTrace(); } if(start_time == null) {start_time = DateUtil.start(new Date());}if(end_time == null) {end_time = new Date(DateUtil.day(start_time, 1).getTime() - 1);}if(time != null){if(time.equals("today")){start_time = DateUtil.start(new Date());end_time = new Date(DateUtil.day(start_time, 1).getTime() - 1);}else if(time.equals("yesterday")){start_time = DateUtil.start(new Date(System.currentTimeMillis()-1000*60*60*24));end_time = new Date(DateUtil.day(start_time, 1).getTime() - 1);}else if(time.equals("anyday")){start_time = anyday_time;end_time = new Date(DateUtil.day(start_time, 1).getTime() - 1);}else if(time.equals("thisweek")){start_time = c1.getTime();end_time = c2.getTime();}else if(time.equals("lastweek")){start_time = c3.getTime();end_time = c4.getTime();}else if(time.equals("thismonth")){start_time = thisMonthStart;end_time = thisMonthEnd;}else if(time.equals("anymonth")){start_time = anyMonthStart;end_time = anyMonthEnd;}}
- oracle字符串连接和时间格式处理(附加Calendar简单使用)
- oracle时间格式处理
- j2me中如何使用Calendar获取系统时间并转换成字符串格式
- j2me中如何使用Calendar获取系统时间并转换成字符串格式
- java时间处理Calendar使用小记
- calendar中的时间格式
- oracle时间格式字符串转化为时间
- Calendar和SimpleDateFormat(打印指定时间和改变日期格式)
- Android 使用SimpleDateFormat以及Calendar转换时间为12小时制和24小时制时间格式
- Java Calendar 类用例(处理时间)
- Calendar时间处理
- 时间处理Calendar
- 时间格式和字符串格式互相转换
- Oracle时间格式转换异常处理函数
- oracle 数字转时间间隔格式处理
- 关于时间格式几种简单处理
- 获取时间Calendar、使用 Date 和 SimpleDateFormat 类表示时间
- 获取时间Calendar、使用 Date 和 SimpleDateFormat 类表示时间
- 64位win7使用debug的方法
- IOS程序内发短信
- 设计模式 - 单例模式
- android 编译原理详解
- SCSF 系列:利用 Smart Client Software Factory 实现 StopLight (Step By Step)
- oracle字符串连接和时间格式处理(附加Calendar简单使用)
- linux系统间如何时间同步
- AndEngine:Super fast emulator
- android 中.9图片的用法 详解
- C# 执行 .Bat文件
- Android 统计图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图
- 查询日期范围增强函数 fn_ltDate3
- 猫大叫一声 主人被惊醒 老鼠被下跑 (C#经典案例面试题)
- SCSF 系列:Smart Client Software Factory 中的 MVP 模式概述