2 qq 25339957 qq_25339957 于 2016.05.09 16:37 提问

Mysql Timestamp 无法时间戳查询

在做SQL优化时,发现时间查询上耗时较大,想优化一下。

字段类型是Timestamp

查询SQL:
工作正常SQL:
SELECT count(*) FROM TRADE_RECORD t where UNIX_TIMESTAMP(t.TRADE_TIME) BETWEEN 1462723200 AND 1462723200;

工作失败SQL:
SELECT count(*) FROM TRADE_RECORD t where t.TRADE_TIME BETWEEN 1462723200 AND 1462723200;

请教为什么下面的SQL会失败,我给timestamp做了索引,如果用上面正常的SQL的话索引好像没有什么效果,下面失败的SQL的话,查询很快,但结果是0,得不到数据。

4个回答

CSDNXIAON
CSDNXIAON   2016.05.09 16:42

MySQL中timestamp(时间戳)自动更新详解
mysql TIMESTAMP(时间戳)详解
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

sxwws
sxwws   2016.05.10 09:32

你这样使用timestamp比较奇怪。你直接当timestamp就是个时间类型进行使用不就好了吗?
比如select a where request_begin_time >='2016/05/10 02:20:30' and request_begin_time<='2016/05/10 04:20:30'

sxwws
sxwws   2016.05.10 09:31

select * from a where request_begin_time >='2016/05/10 02:20:30' and request_begin_time<='2016/05/10 04:20:30'

sxwws
sxwws   2016.05.10 09:32

select * from a where request_begin_time >='2016/05/10 02:20:30' and request_begin_time<='2016/05/10 04:20:30'

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!