Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。(1)SYSDATE和TRUNC两个Oracle日期函数取Oracle服务器系统的日期和截掉小数部分的功能。观察以下操作:create table test_date (name varchar2(20), p_date date);insert into test_date values(‘name1',sysdate);select * from test_date;select * from test_date where p_date='25-10月-05‘;select * from test_date where trunc(p_date)= '25-10月-05‘;Oracle系统中用SYSDATE取得的不仅包含日期而且还包含的有时间信息,时间信息实际上就是表示儒略日数据中的小数部分。(2)ADD_MONTHSOracle日期函数返回一个具有与所提供日期相差月份的日期,函数中给出了未来或以前的月份数。语法如下:ADD_MONTHS(起始日期,增减月数)select add_months('26-10月-05‘,2) from dual;select add_months('26-10月-05‘,-2) from dual;(3)LAST_DAY返回包含给定日期的那个月的最后一天。语法为:LAST_DAY(日期)select last_day('21-2月-80‘) from dual;(4)MONTHS_BETWEEN返回两个日期间的月份。语法为:MONTHS_BETWEEN(较晚日期,较早日期)select months_between('12-10月-05‘,'12-9月-03‘) from dual;以下是一些补充资料,虽然有点仄,但参考下吧在oracle中有很多关于日期的函数,如: 1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) 例: SQL> select add_months(sysdate,12) Next Year from dual;    Next Year ---------- 13-11月-04    SQL> select add_months(sysdate,112) Last Year from dual;    Last Year ---------- 13-3月 -13    SQL>       2、current_date()返回当前会放时区中的当前日期 date_value:=current_date SQL> column sessiontimezone for a15 SQL> select sessiontimezone,current_date from dual;    SESSIONTIMEZONE CURRENT_DA --------------- ---------- +08:00          13-11月-03    SQL> alter session set time_zone=-11:00    2  /    会话已更改。    SQL> select sessiontimezone,current_timestamp from dual;    SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ -11:00          12-11月-03 04.59.13.668000 下午 -11:                  00    SQL>       3、current_timestamp()以timestamp with time zone数据类型返回当前会放时区中的当前日期 timestamp_with_time_zone_value:=current_timestamp([timestamp_precision]) SQL> column sessiontimezone for a15 SQL> column current_timestamp format a36 SQL> select sessiontimezone,current_timestamp from dual;    SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ +08:00          13-11月-03 11.56.28.160000 上午 +08:                  00    SQL> alter session set time_zone=-11:00    2  /    会话已更改。    SQL> select sessiontimezone,current_timestamp from dual;    SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ -11:00          12-11月-03 04.58.00.243000 下午 -11:                  00    SQL>       4、dbtimezone()返回时区 varchar_value:=dbtimezone SQL> select dbtimezone from dual;    DBTIME ------ -07:00    SQL>       5、extract()找出日期或间隔值的字段值 date_value:=extract(date_field from [datetime_value|interval_value]) SQL> select extract(month from sysdate) This Month from dual;    This Month ----------          11    SQL> select extract(year from add_months(sysdate,36)) 3 Years Out from dual;    3 Years Out -----------         2006     6、last_day()返回包含了日期参数的月份的最后一天的日期 date_value:=last_day(date_value) SQL> select last_day(date2000-02-01) Leap Yr? from dual;    Leap Yr? ---------- 29-2月 -00    SQL> select last_day(sysdate) Last day of this month from dual;    Last day o ---------- 30-11月-03    SQL>       7、localtimestamp()返回会话中的日期和时间 timestamp_value:=localtimestamp SQL> column localtimestamp format a28 SQL> select localtimestamp from dual;    LOCALTIMESTAMP ---------------------------- 13-11月-03 12.09.15.433000 下午    SQL> select localtimestamp,current_timestamp from dual;    LOCALTIMESTAMP               CURRENT_TIMESTAMP ---------------------------- ------------------------------------ 13-11月-03 12.09.31.006000   13-11月-03 12.09.31.006000 下午 +08: 下午                         00    SQL> alter session set time_zone=-11:00;    会话已更改。    SQL> select localtimestamp,to_char(sysdate,DD-MM-YYYY HH:MI:SS AM) SYSDATE from dual;    LOCALTIMESTAMP               SYSDATE ---------------------------- ------------------------ 12-11月-03 05.11.31.259000   13-11-2003 12:11:31 下午 下午    SQL>       8、months_between()判断两个日期之间的月份数量 number_value:=months_between(date_value,date_value) SQL> select months_between(sysdate,date1971-05-18) from dual;    MONTHS_BETWEEN(SYSDATE,DATE1971-05-18) ----------------------------------------                                389.855143    SQL> select months_between(sysdate,date2001-01-01) from dual;    MONTHS_BETWEEN(SYSDATE,DATE2001-01-01) ----------------------------------------                                34.4035409    SQL>       9、next_day()给定一个日期值,

JSP 自定义注解及记录操作日志Spring的配置文件<aop:aspectj-autoproxy />日志拦截器package com.vem.interceptor;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut;import org.aspectj.lang.reflect.MethodSignature;import org.springframework.stereotype.Component;import com.vem.entity.BussAnnotation; @Aspect @Component public class LogInterceptor { @Pointcut("execution(* com.vem.service..*.*(..))") public void aApplogic() { } /** * 环绕通知 用于拦截指定内容,记录用户的操作 */ @Around(value = "aApplogic() && @annotation(annotation) &&args(object,..) ", argNames = "annotation,object") public void interceptorApplogic(ProceedingJoinPoint joinPoint, BussAnnotation annotation, Object object) throws Throwable { System.out.println("模块名称moduleName:" + annotation.moduleName()); System.out.println("操作名称option:" + annotation.option()); String methodName = joinPoint.getSignature().getName(); System.out.println("方法名methodName:" + methodName); MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); String[] strings = methodSignature.getParameterNames(); joinPoint.proceed(); Object[] arguments = joinPoint.getArgs(); //获得参数列表 if(arguments.length<=0){ System.out.println(methodName+"方法没有参数"); }else{ for(int i=0;i<arguments.length;i++){ System.out.println(strings[i]+" : "+arguments[i]+" : "); } } } } 自定义注解@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) @Documented public @interface BussAnnotation { //模块名 String moduleName() default ""; //操作内容 String option() default ""; } 接口实现写在[email protected](moduleName="人员管理",option="添加用户") public void testDemo1(PageData pd) throws Exception{ }junit测试类package com.vem.entity;import javax.annotation.Resource;import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.vem.service.data.DemoService;import com.vem.util.PageData; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration( {"classpath:spring/ApplicationContext.xml" })public class AopTest { @Resource(name = "demoService") public DemoService demoService; @Test public void testAopAddUser1(){ PageData pd = new PageData(); pd.put("name", "zhangzexing"); pd.put("age", "21"); pd.put("passward", "123456"); try { demoService.testDemo2(pd); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

服务里没了SQL启动服务,数据库也连不上。打开SQL Server Management Studio,在服务器名称中选择"浏览更多",出现的"本地服务器"中没有选项. 选择"配置工具"-> "SQL Server 2005外围应用配置器",选择"服务和连接的外围应用配置器",报错: "在指定的计算机上找不到任何SQL Server 2005组件.该计算机上未安装任何组件,或者,您不是此计算机上的管理员.(SQLSAC)" 选择"服务和连接的外围应用配置器",报错: "在指定的计算机上找不到任何SQL Server 2005组件.该计算机上未安装任何组件,或者,您不是此计算机上的管理员.(SQLSAC)" SQL Server Management Studio,在服务器名称中选择"浏览更多",出现的"本地服务器"中没有选项安装了一个下午,SQL2005 也重复的安装、卸载很多次,但结果也是一样。临近吃晚饭的时候突然想到的第一次装SQL的时候是把VS2008里的SQL EE卸载的,会不会是这样的,动手安装VS2008VS2008安装,添加组件应该可以不要前面VS2008的,是已经装好的,只是添加后面的SQL EE和SQL发布装好后 果然,服务里有了SQL再打开"服务和连接的外围应用配置器",有了数据库终于联接上了 问题总算解决了,从网上看到有的说需要下个SQL开发版的来装,企业版的不行,我没有试过,100K的速度拖个1.5G的东西还是很费劲的。第一次来这,看到很多牛人的文章,非常受用,非常感谢你们。我也把我的发现贴出来,希望有需要的能找的到。 (08-09-02:更新 )如果要装成企业版的,我的是WEB 2008系统,必须装下面的补丁文件才能装起SQL2005企业版。http://www.microsoft.com/downloads/details.aspx?

最后一个与JSP语法有关的组件叫做内部对象.在JSP小型指令文件内,你可以存取这些内部对象来与执行JSP网页的servlet环境相互作用。许多对内部对象的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部对象设定则需要对最新的Java Servlet API有所了解。   下表列出你可以使用的内部对象。   内部对象说明   request   客户端请求,此请求会包含来自GET/POST请求的参数   response  网页传回客户端的响应   pageContext 网页的属性是在这里管理   session   与请求有关的会话   application servlet正在执行的内容   out     用来传送响应的输出流   config   servlet的架构对象   page    JSP网页本身   exception  针对错误网页,未捕捉的例外   那么,这些是做什么的,而你应该如何使用它们呢?基本上,在你的小型指令文件里,你可以使用它们来存取执行JSP程序代码的servlet。为了避免谈论到太多Servlet API 的细节,让我们来检视一些你可以利用它们来做的事:    不必使用表达式,你可以直接存取内部out对象来打印一些东西到response:   <% out.println("Hello"); %>.    不必直接传送参数到JavaBean,你可以藉由请求对象来取得参数的值:   <% String name=request.getParameter("name"); out.println(name); %>。   当你以JSP写了许多的应用程序之后,如果你建立了JavaBeans或者发现你自己将太多的Java原始码放入你的JSP档案,你需要建立支持的Java类别,这样可以鼓励重复使用并且降低JSP网页转换时所需要的时间。当你需要建立Java类别时,你必须:   将JDSWK的安装目录\bin目录加到你的PATH。在你的autoexec.bat档案的PATH行的最后,加入C:\1.2.2\bin; 。   以下面的指令将JAR档案复制到\jre\lib\ext目录:   copy c:\jswdk-1.0.1\lib\servlet.jar c:

1、如果用户有create routine 权限那么他就可以创建procedure | function 。2、如果用户创建了procedure | function 那么mysql 会自动赋予它对procedure | function 的alter routine和execute 权限。3、例子:用户root用户创建一个[email protected]'localhost'用户并对它赋予create procedure 权限grant create routine on tempdb.* to [email protected]'localhost' identified by '123456';用[email protected]'localhost'用户去创建一个routinedelimiter gocreate procedure sp_hello_world()begin select 'hello world';end godelimiter ;再一次查看[email protected]'localhost'的权限mysql> show grants;+---------------------------------------------------------------------------------------------------------------+| Grants for [email protected] |+---------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'spuser'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' || GRANT CREATE ROUTINE ON `tempdb`.* TO 'spuser'@'localhost' || GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `tempdb`.`sp_hello_world` TO 'spuser'@'localhost' |+---------------------------------------------------------------------------------------------------------------+以上这篇关于mysql create routine 权限的一些说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

分类:其它

时间:2016-10-01 13:45:28