在sql中对时间的操作有很多方法,我们这里总结了几种方法,像我自己做数据库时会把日期字段设置为int(10)这来保存日期的unix_timestamp,最后再加减比较也方便很多,因为我们用的时整型比较哦,有需要的朋友可以自己选择下面任何一种方法。
最简单的用date_format函数进行比较
代码如下 复制代码
* from tb where c> date_format('2007-07-06','%y%m%d') and c
select * from tb where c> date('2007-07-07') and c
statday是形如2006031001的日期数据字段
代码如下 复制代码
select * from loginstat where statday> date_format(curdate()-1,'%y%m%d') and statday >= date_format(curdate(),'%y%m%d');
或者:
代码如下 复制代码
select * from loginstat where statday> date_format(curdate()-1,'%y%m%d%h') and statday >= date_format(curdate(),'%y%m%d%h');
其他用法:
代码如下 复制代码
select * from loginstat where statday >= date_format('$date1','%y%m%d%h') and statday
中存的时间格式为2008-12-28 18:08:08,现在先要从一个一个结果集rs中获得一个日期时间。我先用rs.getdate()方法试着获取时间,结果只有年月日,无法获取小时、分和秒。最后解决的方法是:
代码如下 复制代码
date time1=new date(rs.gettimestamp(pub_time).gettime());
simpledateformat formattime = new simpledateformat(yyyy-mm-dd hh:mm:ss);
string pubtime=formatime.format(time1);
获得的pubtime为string型,在sql语句中用mysql的时间函数date_format('time','format')转换:
代码如下 复制代码
string sqlstr=select * from do_document where pub_time
然后执行该sql语句就查到了满足条件的记录。
分享三
1。
代码如下 复制代码
select * from 表名 where 字段名 between 'yyyy-mm-1' and 'yyyy-mm-30';
可以用日期时间函数进一步修正给出的日期
datetime和date型的数据可以直接比较,比较时datetime型的数据自动转换成date型数据.
2。函数
代码如下 复制代码
select *
from 表
where year(日期字段名)=2007 and month(日期字段名)=6 and day(日期字段名)=10
我自己常用的是下面的方法
mysql的unix_timestamp函?悼梢?б?br />比如
代码如下 复制代码
unix_timestamp('2008-08-08 20:08:08');
unix_timestamp('2008-08-08');
返回值是整?担?梢灾苯蛹?p
实例
代码如下 复制代码
select * from table where createtime>unix_timestamp('2011-1-1 12:12:12');