0 0

Oracle 查询日期类型,最好有实例5

在java项目中,使用Hibernate 查询 Oracle 数据库,用HQL语句:数据库中有一个字段为:orderdatetime 为"DATE"类型,怎样查询日期类型,用模糊查询怎样写,HIbernate 怎样映射。。。。。。。 最好有实例.

不好意思问题已搞定...................
问题补充:
不好意思,我已问人搞定这个问题..............Ham谢谢你!
问题补充:
Ham 我上次的问题还是有一点不好:
<script>  
function keyDown(){  
    var iekey=event.keyCode;  
    var realkey=String.fromCharCode(event.keyCode);  
    //按"Insert"键表格获取光标事件  
    var grid=document.getElementById("myGrid");  
    var order=event.target||event.srcElement; //得到当前的文本框  
    if(order.tagName=="INPUT"){  
        var curRow = order.parentNode.parentNode.rowIndex;//行索引  
        var curCol = order.parentNode.cellIndex;//列索引  
        var rowCount=grid.childNodes[0].childNodes.length-1;  
        var colCount=grid.childNodes[0].childNodes[0].childNodes.length-1;  
        if(iekey==38){  
            if(--curRow>=0&&grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName=="INPUT"){  
                grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中上一行的文本框.  
            }  
        }else if(iekey==40){  
            if(++curRow<=rowCount&&grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName=="INPUT"){  
                grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中下一行的文本框.  
            }  
        }else if(iekey==39){  
            if(++curCol<=colCount&&grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName=="INPUT"){  
                grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中下列的文本框.  
            }  
        }else if(iekey==37){  
            if(--curCol>=0&&grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName=="INPUT"){  
                grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中前列的文本框.  
            }  
        }  
    }  
}  
document.onkeydown = keyDown;  
</script>  
<table id="myGrid" border='1'>  
<tbody>  
<tr>  
<td><input type="text" value="测试用" /></td><td><input type="text" value="测试用" /></td><td>测试用</td>  
</tr>  
<tr>  
<td><input type="text" value="测试用" /></td><td><input type="text" value="测试用" /></td><td><input type="text" value="测试用" /></td>  
</tr>  
<tr>  
<td>测试用</td><td>测试用</td><td>测试用</td>  
</tr>  
</tbody>  
</table> 
我觉得这个不行,应该按我这种方式排列表格,如下:
<table>
<tr>
<td>6908741329326</td>
<td>ewfdsfsdf</td>
<td><input type="text" name="aaa" id="a1" value="215" /></td>
<td>dfsdfsdf</td>
<td><input type="text" id="dddd" value="dsfd" /></td>
<td>dfsdfsd</td>
</tr>
<tr>
<td>6908741329326</td>
<td>ewfdsfsdf</td>
<td><input type="text" name="aaa" id="a2" value="2552" /></td>
<td>dfsdfsdf</td>
<td><input type="text" id="ccc" value="egbrgr"/></td>
<td>dfsdfsd</td>
</tr>
<tr>
<td><input type="text" name="" value="" /></td>
</tr>
</table>
这个才是标准的用左右光标实例.............
问题补充:
我希望是左右上下光标键实例.............
DAO 
2008年8月04日 11:36

5个答案 按时间排序 按投票排序

0 0

采纳的答案

正愁晚上没事做,正在QQ上玩欢乐斗地主,很闲.看到楼主的问题了,又有事情做了.所以又写了个例子.
由于很少在Firefox下面进行开发,一直都是针对于IE的开发,所以我的程序对Firefox的兼容都不是很好,不过代码具体的思路都是差不多的:

<script>
function keyDown(){
	var iekey=event.keyCode;
	var realkey=String.fromCharCode(event.keyCode);
	var grid=document.getElementById("myGrid");
	var order=event.target||event.srcElement;//得到当前的事件对象.
	if(order.tagName=="INPUT"){	
		//MoveData:存储移动光标时的状态数据,避免在后面的四个方法中重复写相同的代码.
		var MoveData={
			grid:grid,//表格对象
			curRow:order.parentNode.parentNode.rowIndex,//行索引
			curCol:order.parentNode.cellIndex,//列索引
			rowCount:grid.childNodes[0].childNodes.length,//总行数
			colCount:grid.childNodes[0].childNodes[0].childNodes.length//总列数
		}
		var moveConfig=null;//存储符合条件的单元格坐标.
		switch (iekey){
			case 37:moveConfig=getMoveLeft(MoveData);break;
			case 38:moveConfig=getMoveUp(MoveData);break;
			case 39:moveConfig=getMoveRight(MoveData);break;
			case 40:moveConfig=getMoveDown(MoveData);break;
			default:return false;
		}
		if(moveConfig!=null){//找到符合标准的单元格,并选中.
			grid.childNodes[0].childNodes[moveConfig.Y].childNodes[moveConfig.X].childNodes[0].select();
		}
	}
}
function getMoveLeft(Data){
	if(--Data.curCol<0){//若该单元格为第一列
		if(--Data.curRow>=0){//若上一行不为空
			Data.curCol=Data.colCount;//将Data中的curCol设置为上一行的最第一列之后.
			return getMoveLeft(Data);//继续向左搜索
		}
		return null;
	}else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol]==null){
		return null;
	}else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol].firstChild.tagName!="INPUT"){
		//若该行不是文本框,则继续向左搜索.
		return getMoveLeft(Data);
	}
	return {X:Data.curCol,Y:Data.curRow};//若到找符合条件的单元格,则将其坐标返回.
}///只做这一个注释吧,后面的思维和这个差不多,懒得写了.

function getMoveRight(Data){
	if(++Data.curCol>=Data.colCount){
		if(++Data.curRow<Data.rowCount){
			Data.curCol=-1;
			return getMoveRight(Data);
		}
		return null;
	}else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol]==null){
		return null;
	}else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol].firstChild.tagName!="INPUT"){
		return getMoveRight(Data);
	}
	return {X:Data.curCol,Y:Data.curRow};
}

/**
由于按向上键或向下键时,如果下方没有单元格,只有左边和右边有的话.
没办法知道用户到底是要选中左边还是右边.若随便选中后,和用户想象
中的选择不一样,体验会不太好.所以只做了垂直的向上和向下移动.
**/
function getMoveUp(Data){
	if(--Data.curRow<0||Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol]==null)return null;
	else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol].firstChild.tagName!="INPUT"){
		return getMoveUp(Data);
	}
	return {X:Data.curCol,Y:Data.curRow};
}
function getMoveDown(Data){
	if(++Data.curRow>=Data.rowCount||Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol]==null)return null;
	else if(Data.grid.childNodes[0].childNodes[Data.curRow].childNodes[Data.curCol].firstChild.tagName!="INPUT"){
		return getMoveDown(Data);
	}
	return {X:Data.curCol,Y:Data.curRow};
}
</script>
<table id="myGrid" border="1" onkeydown="keyDown()">
<tr>
<td>6908741329326</td>
<td>ewfdsfsdf</td>
<td><input type="text" name="aaa" id="a1" value="215" /></td>
<td>dfsdfsdf</td>
<td><input type="text" id="dddd" value="dsfd" /></td>
<td>dfsdfsd</td>
</tr>
<tr>
<td>6908741329326</td>
<td>ewfdsfsdf</td>
<td><input type="text" name="aaa" id="a2" value="2552" /></td>
<td>dfsdfsdf</td>
<td><input type="text" id="ccc" value="egbrgr"/></td>
<td>dfsdfsd</td>
</tr>
<tr>
<td><input type="text" name="" value="" /></td>
</tr>
</table> 


测试一下,IE下可以运行,没问题了,我也睡觉去了.

2008年8月07日 01:26
0 0

......麻烦楼主看清楚代码..
我写的就是上下左右的....

2008年8月07日 15:39
0 0

再问一下:是只需要左右键移动光标,还是上下左右一起使用?

2008年8月07日 00:09
0 0

不好意思...没有考虑到这种情况,我再写份试一下吧.

2008年8月06日 23:57
0 0

yang52081 写道

不好意思问题已搞定...................

那你还问…

2008年8月04日 15:51

相关推荐

    oracle命令大全及源代码实例

    Oracle支持多种数据类型,如`NUMBER`(数值)、`VARCHAR2`(可变长度字符串)、`DATE`(日期时间)、`BLOB`(二进制大对象)等,理解这些数据类型对于正确存储和操作数据至关重要。 5. 索引管理: 索引可以显著...

    oracle设置日期格式

    另一种常用的方法是使用 `TO_CHAR()` 函数直接转换日期类型的值,这样即使没有修改会话级别的设置也能实现特定格式的输出。 ```sql SELECT TO_CHAR(some_date_column, 'yyyy-MM-dd hh24:mi:ss') AS formatted_date ...

    oracle数据库实例视频教程01

    数据类型定义了可以存储在数据库中的数据的类型,如数字、文本或日期。约束则用于确保数据的完整性和一致性。索引能加快查询速度,而视图则是根据特定需求从一个或多个表中创建的虚拟表。 在数据库的安全管理方面,...

    oracle导入表导入数据实例

    这里定义了数据文件`datafile.csv`,并指定了字段分隔符、字段类型以及日期格式。 3. **执行导入** 使用批处理文件(`.bat`)来调用SQL*Loader执行控制文件。`temp_serial_number.bat`可能如下: ```cmd sqlldr...

    oracle操作实例

    - **日期类型:** - `DATE`: 存储日期时间值,有效范围为公元前4712年到公元4712年。 - **二进制类型:** - `RAW`: 用于存储二进制数据,最大长度为2000字节。 - `LONG RAW`: 最大长度可达2GB的二进制数据类型。 ...

    ORACLE中的日期加减操作实例介绍

    在Oracle数据库中,日期加减操作是日常查询和数据分析中不可或缺的部分。本篇文章将深入探讨如何在Oracle中进行日期和时间的加减操作,并通过实例详细介绍如何增加小时、分钟、秒、天、月以及年。 首先,Oracle支持...

    Oracle查询优化日期运算实例详解

    本文将深入探讨Oracle中的日期运算实例及其优化策略。 首先,Oracle数据库允许对DATE类型的数据进行直接加减天数的操作。例如,`a.hiredate + 5`表示在雇用日期上增加5天,而`a.hiredate - 5`则表示减少5天。这种...

    从oracle数据库取出日期按格式显示

    ### Oracle数据库中的日期类型 Oracle数据库支持多种日期时间数据类型,其中最常用的是`DATE`类型。`DATE`类型不仅存储日期信息,还包含时间部分,具体到小时、分钟和秒。因此,一个`DATE`类型的值实际上表示的是一...

    Oracle中几个关于日期方面的SQL实例

    以下是一些关于Oracle日期处理的SQL实例解析: 1. 取得当前日期是本月的第几周: 使用`to_char()`函数结合日期格式模型`'W'`可以获取当前日期是本月的第几周。例如: ``` SELECT to_char(sysdate,'W') FROM dual...

    Oracle数据库系统应用实例集锦与编程

    B树索引、位图索引和全文索引等不同类型的索引适用于不同的查询场景。理解何时和如何创建索引,能显著提升数据库的查询效率。 在数据库设计中,规范化是优化数据结构的重要原则。Oracle支持第一范式(1NF)、第二...

    Oracle11g第2版实例源程序

    Oracle数据库是一种基于SQL的数据库管理系统,它支持多种数据类型,包括数值、字符串、日期、二进制等,并且提供了事务处理、并发控制、恢复机制等核心功能。在Oracle11g中,引入了新的特性如自动内存管理、存储优化...

    ibatis+oracle实例

    1. **数据类型**:Oracle支持多种数据类型,如`NUMBER`(数值)、`VARCHAR2`(可变长度字符串)、`DATE`(日期时间)、`CLOB`(大对象)等。 2. **索引**:为了提高查询效率,Oracle允许为表的列创建索引。B树索引...

    oracle数据库表分区实例

    ### Oracle数据库表分区实例 #### 一、Oracle表分区简介 在Oracle数据库中,表分区是一种将大型表物理地划分为多个较小部分的技术。通过合理地利用分区技术,可以显著提高查询性能,简化数据管理任务,并加快数据...

    oracle 的函数、存储过程、游标、简单实例

    在Oracle中,游标有两种类型:隐式游标(由SELECT语句自动管理)和显式游标(由开发者手动控制)。使用游标,你可以逐行处理数据,更新、插入或删除记录,而无需一次性加载所有结果。 现在,我们来看一些**简单实例...

    在Oracle写入Date类型的Sql语句

    Oracle中日期转换 to_date参数含义 日期转换写入实例

    oracle触发器实例讲解

    **实例6**:创建了`trig_log_info`触发器,用于记录在当前模式下执行的CREATE或DROP操作,信息包括执行用户、日期、操作类型、对象名和对象类型。这样可以实现数据库对象变更的日志记录。 在Oracle中,触发器可以...

    Oracle函数大全实例

    本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...

    python 插入日期数据到Oracle实例

    总的来说,Python结合`cx_Oracle`库可以方便地处理Oracle数据库中的日期和时间数据,无论是插入、更新还是查询。在实际开发中,为了确保代码的健壮性和可维护性,还需要考虑异常处理、连接池管理、日志记录等细节。

Global site tag (gtag.js) - Google Analytics