java,jsp,的数据库日期操作杂记

java 中Date和String不能互相强制转换 

需SimpleDateFormat进行互转:

SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");


String datestr=sdf.format(new Date());


Date date=sdf.parse("2014-05-05");


***********************************************************************************************

struts框架以特定格式显示时间



<!-- 以特定格式显示日期 ,nice的值表示在web.xml中是否定义了日期格式--> <!-- name相当于value  -->
<s:date name="#h.startDate" format="yyyy年MM月dd HH:mm" nice="false" />


************************************************************************************************

获取session中的数据,并显示特定格式日期

<%@page import="bean.Hangban,java.util.Date , java.text.SimpleDateFormat"%>
<%
Hangban hg=(Hangban) session.getAttribute("hangban");
Date date=hg.getStartDate();
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm");
out.println(s.format(date));
%>


**********************************************************************************************

数据库日期字段存储为:日期+时间的数据,查询条件为日期,不考虑时间部分,如何写查询语句?


用trunc()函数,在查询条件中将日期字段的时间截断,执行判断。
例: select * from person p where trunc(p.birth) >=  to_date('2011-6-1','YYYY-MM-DD')
查询2011年6月1日以后出生的人员信息。




***********************************************************************************************

Hibernate HQL to_date() 在oracle中的使用 (2012-08-03 00:46:44)


一、Hql中使用to_date()时格式化日期需要注意格式码
 
如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;


二、另要以24小时的形式显示出来要用HH24


select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份
 
Eg:
hql = "select * from DATE as t where t.Date =
to_date('2012-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') ";


***************************************************************************************************

MySQL DATE_FORMAT() 函数

MySQL Date 函数
定义和用法
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
可以使用的格式有:
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位
实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635


如: select DATE_FORMAT(birth,'%Y %m %d') from user  where sno="20117760218";




******************************************************************************************************************
*******************************************************************************************************************
SSH项目中实现日期部分的匹配查询


Session sess=HibernateSessionFactory.getSession();
sess.beginTransaction();
String strhql="from Hangban h where " +
"h.start=:start and h.end=:end "+
" and  DATE_FORMAT(h.startDate,'%Y-%m-%d')= DATE_FORMAT(:startDate,'%Y-%m-%d') ";
      List<Hangban> hangbanList=sess.createQuery(strhql)
                               .setParameter("start", "郑州市")
                               .setParameter("end", "郑州市")
                               .setParameter("startDate", "2014-05-06")
                               .list();
      
      for(Hangban h : hangbanList){
    System.out.println("出发点:"+h.getStart()+h.getStartDate()); 
     
      }
      
sess.getTransaction().commit();
HibernateSessionFactory.closeSession();


*****************************************************************************************************************

使用my97日期组件,实现航班的时间查询





<%@ page  import="java.util.Date, java.text.SimpleDateFormat;" %>




<!-- 日期组件js,css -->
<LINK href="${pageContext.request.contextPath}/css/admin.css"
type="text/css" rel="stylesheet">
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/My97DatePicker/WdatePicker.js"></script>


出发时间: <input type="text" name="hangban.startDate" readonly="readonly"
class="Wdate"
onFocus="WdatePicker({skin:'twoer',dateFmt:'yyyy-MM-dd'})"
value="<%
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //格式可调整
            String datestr = s.format(new Date());
out.println(datestr); %>" />   //默认显示为当前时间







































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值