问题描述
- sql server 按日期分组查询
-
各位 大侠,请问这个我弄错了吗,有个字段payment_time,时间格式2015-12-23 19:16:07 ,我要查询把后面时间去掉,变成2015-12-23 这个格式,然后统计每天id数量,我在网上搜索到下面的这个转换日期的代码,我自己添加的count(id),但是不知道为什么不是我想要的结果,哪里不对吗?
SELECT substring(Convert(VARCHAR(30), payment_time, 120),1,10) as 日期 , count(id)
from m_order
group by payment_time
解决方案
group by应该用截掉时间的字符串
解决方案二:
select * from ApplyInfo join Users on ApplyInfo.ApplyMan=Users.UserId where convert(varchar(10),ApplyDate,120)='2008-03-14'--sql server中查询与日期相等的方法。
select * from ApplyInfo join Users on ApplyInfo.App......
答案就在这里:sql server中日期查询
解决方案三:
用的mysql——》
①
select DATE_FORMAT('2015-12-23 19:16:07','%Y-%m-%d')可以满足你的日期转化。
②
另外:你的SQL语句可以这样优化:
SELECT DATE_FORMAT(payment_time, '%Y%m%d') , count(id)
from m_order
group by payment_time
这里的日期是一直在增长的,直接转化排序就OK,项目中我都是这样做的,希望能帮到你。
解决方案四:
SELECT substring(Convert(VARCHAR(30), payment_time, 120),1,10) as 日期 , count(id)
from m_order
group by substring(Convert(VARCHAR(30), payment_time, 120),1,10)
这样写可以
时间: 2024-08-08 14:05:56