jsp sql server 2000的时间日期格式与字符串相转化

本来在设计数据库的时候,我开始想设置一些datetime格式的字段,感觉转化起来麻烦,就做成char类型了,"yyyy-mm-dd"是这样的统一写法,如果需要这个字符字段与时间进行转化时,可以用 convert 函数,convert可以对任意两种格式转变,这里只是正好利用到它了,我想让这个字符字段的时间和现在时间比较,就用了下面这句:

select * from 表名 where convert(varchar(10),CONVERT(DATETIME,一个字符类的字段),120)<=convert(varchar(10),CONVERT(DATETIME,getdate()),120)

首先,把 字符 转到 datetime ,CONVERT(DATETIME,一个字符类的字段);

然后,截取相应 年 月 日 部分,convert(varchar(10),CONVERT(DATETIME,一个字符类的字段),120),

另外一句,convert(varchar(10),CONVERT(DATETIME,getdate()),120) ,正好把当前时间得到,截取 年 月 日 部分,直接比较!

上面这个查询可以找到位于当前时间以前的日期,虽然字段是 char ,但最后 办法 被找到,还是成功了。

 

Sql Server2000 时间转字符串(40)种格式  日期时间转字符串的语句和结果------------------------------------------------------------------------
Select CONVERT(varchar(100), GETDATE(), 0): 04 11 2011 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 04/11/11
Select CONVERT(varchar(100), GETDATE(), 2): 11.04.11
Select CONVERT(varchar(100), GETDATE(), 3): 11/04/11
Select CONVERT(varchar(100), GETDATE(), 4): 11.04.11
Select CONVERT(varchar(100), GETDATE(), 5): 11-04-11
Select CONVERT(varchar(100), GETDATE(), 6): 11 04 11
Select CONVERT(varchar(100), GETDATE(), 7): 04 11, 11
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 04 11 2011 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 04-11-11
Select CONVERT(varchar(100), GETDATE(), 11): 11/04/11
Select CONVERT(varchar(100), GETDATE(), 12): 110411
Select CONVERT(varchar(100), GETDATE(), 13): 11 04 2011 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2011-04-11 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2011-04-11 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 04/11/11 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2011-04-11
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2011-04-11 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 04 11 2011 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 04/11/2011
Select CONVERT(varchar(100), GETDATE(), 102): 2011.04.11
Select CONVERT(varchar(100), GETDATE(), 103): 11/04/2011
Select CONVERT(varchar(100), GETDATE(), 104): 11.04.2011
Select CONVERT(varchar(100), GETDATE(), 105): 11-04-2011
Select CONVERT(varchar(100), GETDATE(), 106): 11 04 2011
Select CONVERT(varchar(100), GETDATE(), 107): 04 11, 2011
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 04 11 2011 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 04-11-2011
Select CONVERT(varchar(100), GETDATE(), 111): 2011/04/11
Select CONVERT(varchar(100), GETDATE(), 112): 20110411
Select CONVERT(varchar(100), GETDATE(), 113): 11 04 2011 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2011-04-11 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2011-04-11 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2011-04-11T10:57:49.827

 

jsp 里面可以这样相互转换 这两种数据:

//String --->time
String str = "20110723" ;
DateFormat date = new SimpleDateFormat("yyyy-mm-dd");
Date d = date.parse(str); 
 //time--> Strng 
DateFormat date = new SimpleDateFormat("yyyy-mm-dd");
 String str = date.fromat(Date date);

 

这一句话 得到当前时间:就这一句:

String date=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());

 

不少时候我都是字符串类型的数据,平时往里加需要人输入的数据时,感觉还方便,必要时把它转一下,换成时间。

刚才提到的是在数据库中时间的比较,在JSP中怎么办?

   java.util.Date nowdate=new java.util.Date();                                                       //获取当前时间,又是一种方法
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);         //设置一种时间转化的格式
   Date d = sdf.parse(da);                                                                                                         //da 是我提供的string 时间值

   boolean flag = d.before(nowdate);                                                                                      //da所表示的时间与当前时间比较,得到一个布尔值
   if(flag)                             //如若为正,说明我提供的时间确实比当前时间要小
   {
    b=true;
   }

问题解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值