假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql:
对于这种语句,如果你存储的格式是YY-mm-dd是这样的,那么OK,如果你存储的格式是:2013-01-12 23:23:56这种格式你就悲剧了,这是你就可以使用DATE()函数用来返回日期的部分,所以这条sql应该如下处理:
select * from product where Date(add_time) = '2013-01-12'
如果按照日期+时间模式(2013-01-12 23:23:56—时间精确到秒)查询数据库,则可以使用timestamp()函数来查询:
select * from product where timestamp(add_time) = '2013-01-12 23:23:56';
或者查询一个时间范围,可以用:
select * from product where timestamp(add_time) between '2013-01-12 03:23:56' and '2013-01-12 23:23:56';
或者
select * from product where timestamp(add_time) >= '2013-01-12 03:23:56'