mysql 查询时间条件问题

今天遇到了一个问题,跟大家分享一下。

有这样一个sql:

select * from order where created > now() - 259200

目的是为了查询三天内的订单, 理解上259200是秒数,转化为72个小时,也就是3天。
但是事与愿违。 mysql中时间算减法居然不是这么算的。他是这么算的:
now() - X00 X<99, 那么就是减去X分钟。
now() - X0000, 那么就是减去多少小时,但是当减去的小时数超过今天的时候那么最少只能到当前天的00:00:00.这样就造成了问题。

那么怎么解决这个问题呢?可以使用mysql自带的时间函数,如下:

select * from order where created > date_add(now(), interval -1 day);

或者直接从代码中把> ?的这个部分传递过来。

时间: 2025-01-19 23:27:57

mysql 查询时间条件问题的相关文章

查询问题-mysql查询间隔时间排除周六周日排除星期六星期日

问题描述 mysql查询间隔时间排除周六周日排除星期六星期日 请教下各位高手,目前遇到这样一个问题,有一张表:tb_abc 里面有字段和数据为:开始日期:start_time 2015-11-10结束日期:end_time 2015-12-20 要查询出 开始日期到结束日期并且排除[星期六].[星期日]的所有总天数是多少,用mysql函数实现,各位大大帮帮忙,谢谢! 解决方案 数据库本身没有这个判断,只能你自己代码获取所有的日期,然后再来过滤 解决方案二: 1.建立一个计算字符"星期"

php中如何设置mysql查询读取数据的超时时间

现象: php能通过代理正常连接到mysql.但是,执行query后,一直等待,没有任何数据返回. 结果导致php-fpm进程全部阻塞在读取数据的地方.不能处理其他正常请求. 解决方法: 可以通过设置mysql查杀的超时时间来解决这个问题. 第一种设置mysql查询超时时间的方法是使用mysqlnd. 关于msyqlnd的介绍,大家可以看下这篇文章 http://www.bo56.com/php-mysqlnd-简介/ php启用mysqlnd扩展后,只要在php.ini文件中设置 mysqln

索引-mysql查询问题,优化性能,提高查询时间

问题描述 mysql查询问题,优化性能,提高查询时间 我有一个数据采集表,一个月一张表,每天不停新增数据,一个月百万条,现在查询一页数据在3s左右,发现sql 中order by消耗不少时间,建立索引可方便查询,可新增数据的效率肯定受影响,怎么平衡 经验不足,现在只能想到这里,故而前来请教 解决方案 通过时间分区会不会好点呢 解决方案二: order by是通过什么来排序的呢 如果表中的id是自增的,order by的时候,你根据id来排序,主键会被默认创建索引,这样应该能快些.

数据库查询判断-vb2012 查询mysql数据库 where 条件语句有多个变量该怎么写?

问题描述 vb2012 查询mysql数据库 where 条件语句有多个变量该怎么写? 单个变量时 ("select * from biao1 where id>=" & i,conn) 没有问题 我想id取值在变量i和j之间,另外name=lk,求大神赐教! 解决方案 你会一个条件,多个条件,自己拼接字符串,总该会吧 解决方案二: 你可以使用string把字符串拼接起来. 或者用sprintf格式化写入一个字符串 #include<iostream> #in

mysql 的慢日志中记录的查询时间非常大。。但是实际执行速度还可以。求助!

问题描述 mysql 的慢日志中记录的查询时间非常大..但是实际执行速度还可以.求助! Query_time: 18446744073709.234375 Lock_time: 0.000050 Rows_sent: 1 Rows_examined: 78415 use news;SET timestamp=1378690201;select idfile.....position from 表名 where id='164185' order by position;

php设置mysql查询读取数据的超时时间

现象:php能通过代理正常连接到mysql.但是,执行query后,一直等待,没有任何数据返回. 结果导致php-fpm进程全部阻塞在读取数据的地方.不能处理其他正常请求.解决方法: 可以通过设置mysql查杀的超时时间来解决这个问题. 第一种设置mysql查询超时时间的方法是使用mysqlnd. php启用mysqlnd扩展后,只要在php.ini文件中设置 mysqlnd.net_read_timeout 即可. 参数值的单位为秒.如: mysqlnd.net_read_timeout =

MySQL 查询中的分页思路的优化

mysql|分页|优化 作者:steeven 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出"所有"符合条件的记录,然后取出m,n条记录.如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦...mysql该很悲壮的不停操作硬盘. 所以,可以试着让mysql也存储分页

MySQL 查询中的分页思路的优化教程

  复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出"所有"符合条件的记录,然后取出m,n条记录.如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦.mysql该很悲壮的不停操作硬盘. 所以,可以试着让mysql也存储分页,当然要程序配合. ASP的分页:在ASP系统中有Recordset对象来实现分页,但是大量数据放在内存中,而且不知道什么时候才失效(请ASP高手指点).

select-mysql语句查询时间过长如何优化?

问题描述 mysql语句查询时间过长如何优化? SELECT t1.id, t1.order_no, t1.order_status, t1.pay_status,t1.shipping_status, t1.pay_method, t1.invoice, t1.remark, t1.seller, t1.buyer, t1.site_id, t1.order_time, t1.pay_time, t1.sign_for_time, t1.delivery_time, t1.subtotal,