SQL中怎样对datetime数据类型按日期分组 10

现在是这样:日期金额2008-05-2122:15:56.577930.6999982008-05-2207:02:23.437330.828999-----------... 现在是这样:
日期 金额
2008-05-21 22:15:56.577 930.699998
2008-05-22 07:02:23.437 330.828999
---------------------------------------
想要显示:
日期 金额
2008-05-21 930.699998
2008-05-22 330.828999
create procedure test1
@fristday datetime,
@lastday datetime
as
select recmaster.recdtm as '日期',sum(recdetail.recprc) as '金额'
from recmaster,recdetail
where recmaster.billno=recdetail.billno and recmaster.depoid=recdetail.depoid
group by CONVERT(varchar(12) , recmaster.recdtm, 111 ),recdetail.recprc
having recmaster.recdtm>=@fristday and recmaster.recdtm<=@lastday order by recmaster.recdtm
go
这个是我写的,错误在上面
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

请指教
展开
 我来答
wyd52x
2009-08-25 · TA获得超过1943个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:632万
展开全部
select left(日期,charindex(日期,' ')) as '日期',sum(金额) as '金额' form 表 group by left(日期,charindex(日期,' '))

看你分组是用来干什么的 如果是要同组时间的金额相加 那 sum(金额) as '金额' 部分不变
如果是其他造作改sum为:

求组中最大: max
求组中最小: min

求行数:cout
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
推荐于2020-12-20 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3731万
展开全部
转换后如果日期列是datetime的话这样写:
select cast(convert(varchar(10),日期,120) as datetime),金额 from 表

转换后如果日期列为varchar型的话这样写:
select convert(varchar(10),日期,120),金额 from 表

以上,希望对你有所帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wu_dong_505
2009-08-25 · TA获得超过418个赞
知道答主
回答量:134
采纳率:100%
帮助的人:0
展开全部
正确答案应该是这样的:
select 日期,金额
from 表名
group by convert(varchar(10),日期,126),金额
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2009-08-25 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3813万
展开全部
select CONVERT(varchar(12) , 日期, 23 ) as '日期',金额 from table1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式