mysql时间戳问题

我的表里存的都是时间戳,好几百万条,想通过sql 利用count直接查出来今天的订单量,这就涉及到一个问题,时间上的问题,本来有一个方法可以在sql的时候把时间戳转换了导成表,但是这数据量太大了一下子好几百万行不通,还有一个在where里过滤时间戳,但是这样今天是可以查出来,但是我明天再点开这个组件,查询到的就还是今天的数据了,也就是时间不能写死,得有个能代表当天时间戳的函数,各位有知道的吗?

FineBI 那时风景已不再 发布于 2019-12-10 11:31
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
那时风景已不再Lv0见习互助
发布于2019-12-10 11:53

自己解决了,利用多个时间函数在where条件里强制转实现的

最佳回答
0
wengleiLv4初级互助
发布于2019-12-10 11:34(编辑于 2019-12-10 11:39)

获取当前日期     格式为:%Y-%m-%d

  1. SELECT CURDATE()

  2. SELECT CURRENT_DATE()


查询当天0点,格式为YYYY-MM-DD HH:mm:ss

SELECT DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');-- 2019-12-10 00:00:00


当前时间

SELECT NOW()



最佳回答
0
陈星Lv6初级互助
发布于2019-12-10 12:02

#1、只查询今天的数据,直接写死就可以了



时间戳字段 >= UNIX_TIMESTAMP(CURDATE())



#2、查询指定日期数据(过滤组件用日期区间,然后绑定参数)

SELECT

*

from 表

where 时间戳字段 >= UNIX_TIMESTAMP('${日期参数-start}')

and 时间戳字段 < UNIX_TIMESTAMP('${日期参数-end}')


  • 那时风景已不再 那时风景已不再(提问者) 感谢回答哈,就是有点没看懂,刚用这软件有点萌萌的,我是在where里用这个实现的paytime>unix_timestamp(date_format(now(), \'%Y-%m-%d\')) AND paytime<=unix_timestamp(now()) 您这个如果再结合时间组件可能会给我惹麻烦,估计每天的都想看了,我只看固定的,今天,昨天,本周和本月
    2019-12-10 12:09 
  • 那时风景已不再 那时风景已不再(提问者) 您说的这个我看了下,确实在我的这种需求不行,我只是要个数量,日期是不拿出来的,所以日期空间都不能用,因为没字段可给
    2019-12-10 12:12 
最佳回答
0
dengxinruLv5见习互助
发布于2019-12-11 09:58

可以用参数的,日期过滤组件绑定参数,并且参数可以是动态时间,动态时间那边选择一下,选择今天即可

  • 那时风景已不再 那时风景已不再(提问者) 额,我没太明白哈,您说的用参数,是这样实现吗,把整个表的数据查出来,添加组件的时候添加一个日期组件,然后把表的时间字段拖进去,然后这样我可以随着点某一天就可以看到相关的数据了,可能我理解的有问题哈,您帮我确定下
    2019-12-11 10:26 
  • dengxinru dengxinru 回复 那时风景已不再(提问者) 写sql的时候定义下参数,不过这个是针对实时数据的~
    2019-12-11 15:28 
  • 那时风景已不再 那时风景已不再(提问者) 回复 dengxinru 不懂啊,能帮忙写一下您说的这个定义参数的sql语句吗
    2019-12-11 15:37 
  • 那时风景已不再 那时风景已不再(提问者) SELECT count(*) FROM ceshi1 WHERE time>unix_timestamp(date_format(now(), \'%Y-%m-%d\')) AND time<=unix_timestamp(now()) 这个就是查询今天的订单量,我这个有点特殊,因为数据有几百万条而且数据库存储的时间字段是时间戳int类型,所以只能通过转换本地时间为时间戳去数据库进行匹配,像您说的那个方法如果不是我上面说的那样的话,还请指教一下,毕竟这个软件我才刚刚用,有点蒙蔽
    2019-12-11 18:29 
  • 3关注人数
  • 698浏览人数
  • 最后回答于:2019-12-11 09:58
    请选择关闭问题的原因
    确定 取消
    返回顶部