2024年3月20日发(作者:)

关于SQL时间类型的模糊查询

今天用time Like '2008-06-01%'语句来查询该天的所有数据,被提示语句错

误。查了一下才发现该模糊查询只能用于String类型的字段。

自己也查阅了一些资料。关于时间的模糊查询有以下三种方法:

t转成String,在用Like查询。

select * from table1 where convert(varchar,date,120) like '2006-0

4-01%'

n

select * from table1 where time between '2006-4-1 0:00:00' and '2006-

4-1 24:59:59'";

3 datediff()函数

select * from table1 where datediff(day,time,'2006-4-1')=0

第一种方法应该适用与任何数据类型;

第二种方法适用String外的类型;

第三种方法则是为date类型定制的比较实用快捷的方法。

MySQL时间字段的查询方法

2010-08-25 13:52

描述:有一个会员表,有个birthday字段,值为'YYYY-MM-DD'格式,现在要查

询一个时间段内过生日的会员,比如'06-03'到'07-08'这个时间段内所有过生日

的会员。

SQL语句: Select * From user Where DATE_FORMAT(birthday,'%m-%d') >=

'06-03' and DATE_FORMAT(birthday,'%m-%d') <= '07-08';

------查询时间段内的记录--------------------------------------

select * from manipulate_journal where

DATE_FORMAT(manipulate_time,'%Y-%m-%d %H:%i:%s') >= '2012-04-18

0:00:00' and DATE_FORMAT(manipulate_time,'%Y-%m-%d

%H:%i:%s') <= '2012-04-18 23:59:59';

------------------------------------------------------------------

说明:常用的时间日期处理函数,上面的主要是DATE_FORMAT()这个函数的应用。

1、DAYOFWEEK(date)

返回日期date的星期索引(1=星期天,2=星期一, „„7=星期六)。这些索引值

对应于ODBC标准。

mysql> select DAYOFWEEK('1998-02-03');

-> 3

2、 WEEKDAY(date)

返回date的星期索引(0=星期一,1=星期二, „„6= 星期天)。

mysql> select WEEKDAY('1997-10-04 22:23:00');

-> 5

3、DAYOFMONTH(date)

返回date的月份中日期,在1到31范围内。

mysql> select DAYOFMONTH('1998-02-03');

-> 3

4、DAYOFYEAR(date)

返回date在一年中的日数, 在1到366范围内。

mysql> select DAYOFYEAR('1998-02-03');

-> 34

5、MONTH(date)

返回date的月份,范围1到12。

mysql> select MONTH('1998-02-03');

-> 2

6、DAYNAME(date)