A. sql 实现按日期分组
需要用convert函数转换日期格式,并且需要用group by来实现分组。
1、创建测试表及插入数据:
createtabletest
(tdatedatetime,
salint);
insertintotestvalues('2015-09-2312:22:22',100);
insertintotestvalues('2015-09-2301:54:34',456);
insertintotestvalues('2015-09-2414:32:35',45);
insertintotestvalues('2015-09-2422:23:43',67);
insertintotestvalues('2015-09-2519:43:22',234);
insertintotestvalues('2015-09-2508:14:12',67);
insertintotestvalues('2015-09-2604:53:34',45);
insertintotestvalues('2015-09-2609:46:54',78);
2、执行sql语句:
selectconvert(varchar(10),tdate,120)tdate,sum(sal)salfromtestgroupbyconvert(varchar(10),tdate,120);
3、执行结果:
B. sql语句按照日期分组怎么写
1.如果你的时间格式是2012-01-13 17:35:52.217这样的形式,(主要是那个01不要是1),用下面这个
SELECT convert(varchar(10),时间,23),SUM(数字数据) FROM 表
group by convert(varchar(10),时间,23)
2.如果你的时间格式不是上面的格式,先转化成datetime:
SELECT convert(varchar(10),cast(时间 as datetime),23) ,SUM(数字数据) FROM 表
group by convert(varchar(10),cast(时间 as datetime),23)
3.如果报错,请追问~
C. 将SQL查询出的日期更改格式
1、点击“开始”——“MicrosoftSQL Server 2005”——“Microsoft SQL Server Management Studio”。
D. sql语句的根据日期排序问题!
这个问题的原因是你的time 不是datetime 应该是varchar型.
改成这个.
sql="select id,title,content,class,img,time from info order by cast(time as datetime) desc"
就行了
E. sql语句 按日期排列
select.......order by convert(varchar,日期,120)desc
F. My sql 如何用一条语句生成整月日期并按日期排序,跪求高人
declare @sdate datetime ,@edate datetime
set @sdate = '2012/01/01 00:00:00'
set @edate = '2012/01/31 00:00:00 '
while @sdate < = @edate
begin
print @sdate
dateadd(day,1,@sdate)
end
这个只是显示出结果,如果要插入某个表格的话,
将print那行该一下应该就可以了
G. SQL 按日期大小在每一行进行汇总求和
用这个肯定可以。
SELECT NO, date, qty,
(select sum(qty) from task where date <= t1.date)
FROM task t1
date那里不同sql方言要做适当转换,可以考虑拿到yyyyMMdd,然后比较
SELECT NO, date, qty,
(select sum(qty) from task
where convert(varchar(10),date,120) <= convert(varchar(10),t1.date,120))
FROM task t1
<=
H. SQL中按日期进行查询,如何截取日期进行查询
那你就直接写 time>date'2012-01-01' and time<date'2013-01-01'
当然,如何把'2012-01-01'转换为数据库的时间类型,各种数据库是不一样的,oracle中是to_date('2012-01-01','yyyy-MM-dd')