mysql日期比较

互联网十八般武艺 互联网十八般武艺

在sql中对时间的操作有很多方法,我们这里总结了几种方法,像我自己做数据库时会把日期字段设置为int(10)这来保存日期的unix_timestamp,最后再加减比较也方便很多,因为我们用的时整型比较,有需要的朋友可以自己选择下面任何一种方法.

最简单的用date_format函数进行比较,代码如下:

  1. select*fromtbwherec>date_format('2007-07-06','%Y%m%d')andc<=date_format('2007-07-09','%Y%m%d');
  2. select*fromtbwherec>date('2007-07-07')andc<date('2007-07-09')

STATDAY是形如2006031001的日期数据字段,代码如下:

  1. select*fromLOGINSTATwhereSTATDAY>date_format(curdate()-1,'%Y%m%d')andSTATDAY>=date_format(curdate(),'%Y%m%d');
  2. --或者:
  3. select*fromLOGINSTATwhereSTATDAY>date_format(curdate()-1,'%Y%m%d%H')andSTATDAY>=date_format(curdate(),'%Y%m%d%H');

其他用法,代码如下:

select * from LOGINSTAT where STATDAY >= date_format('$date1','%Y%m%d%H') and STATDAY < date_format('$date','%Y%m%d%H')

mysql数据库中存的时间格式为2008-12-28 18:08:08,现在先要从一个一个结果集rs中获得一个日期时间,我先用rs.getDate()方法试着获取时间,结果只有年月日,无法获取小时、分和秒,最后解决的方法是:

  1. Datetime1=newDate(rs.getTimestamp("pub_time").getTime());
  2. SimpleDateFormatformattime=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  3. Stringpubtime=formatime.format(time1);

获得的pubtime为String型,在sql语句中用mysql的时间函数date_format('time','format')转换,代码如下:

  1. Stringsqlstr="select*fromdo_documentwherepub_time<date_format('"+pubtime+"','%Y-%m-%d%H:%i:%s')orderbypub_timedesclimit0,1";

然后执行该sql语句就查到了满足条件的记录.

分享三

1,代码如下:

SELECT * FROM 表名 WHERE 字段名 BETWEEN 'YYYY-MM-1' AND 'YYYY-MM-30';

可以用日期时间函数进一步修正给出的日期,datetime和date型的数据可以直接比较,比较时datetime型的数据自动转换成date型数据.

2,函数,代码如下:

  1. select*
  2. from
  3. whereyear(日期字段名)=2007andmonth(日期字段名)=6andday(日期字段名)=10

我自己常用的是下面的方法,MySQL的UNIX_TIMESTAMP函数,比如:

  1. UNIX_TIMESTAMP('2008-08-0820:08:08');
  2. UNIX_TIMESTAMP('2008-08-08');

返回值是整数,代码如下:

select * from table where createtime>unix_timestamp('2011-1-1 12:12:12');

相关广告
  • mysql日期比较 mysql日期比较 mysql日期比较
相关阅读

mysql中日期比较大小方法详解

2019/10/10 17:34:51 | 谷歌SEO算法 | SEO优化

mysql 日期比较函数

2019/10/10 17:34:24 | 谷歌SEO算法 | 黑猫SEO

mysql日期比较

2019/10/10 17:33:03 | 谷歌SEO算法 | 微信公众号