⑴ sql按时间排序
按修改的时间倒序排列语句为:
select * from MyTable Order By ModifyTime Desc
如果只想显示最新一条,语句为:
select top 1 * from MyTable Order By ModifyTime Desc
示例:
表查询结果为:
按时间排序后为:
只显示最新一条结果为:
扩展:
ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
⑵ sql按指定时间段统计问题
不用去判断,系统自己会判断的,如上图,测试代码如下:
declare @dateNow varchar(100)
declare @daybefore varchar(100)
set @dateNOw = '2014/03/01 09:00:00'
set @daybefore = DATEADD(DAY,-1,@dateNOw)
select @daybefore as daybefore, @dateNow
select * from v_WorkRecord where MakeDate between @daybefore and @dateNow
⑶ SQL 按时间字段每天分四个部分提取平均值
比如:
select case when convert(varchar(8),时间,108) between '00:00:00' and '05:59:59' then convert(varchar(10),时间,120) + '-1'
when convert(varchar(8),时间,108) between '06:00:00' and '11:59:59' then convert(varchar(10),时间,120) + '-2'
when convert(varchar(8),时间,108) between '12:00:00' and '17:59:59' then convert(varchar(10),时间,120) + '-3'
when convert(varchar(8),时间,108) between '18:00:00' and '23:59:59' then convert(varchar(10),时间,120) + '-4' end 时间段,
avg(值) 平均值
group by
case when convert(varchar(8),时间,108) between '00:00:00' and '05:59:59' then convert(varchar(10),时间,120) + '-1'
when convert(varchar(8),时间,108) between '06:00:00' and '11:59:59' then convert(varchar(10),时间,120) + '-2'
when convert(varchar(8),时间,108) between '12:00:00' and '17:59:59' then convert(varchar(10),时间,120) + '-3'
when convert(varchar(8),时间,108) between '18:00:00' and '23:59:59' then convert(varchar(10),时间,120) + '-4' end
⑷ 求一个按小时筛选的sql语句
以一小时为一组:
select * from 表名 where 时间列名称 > dateadd(Hour,-1,getDate())
⑸ sql 我有个表要按时间筛选,group没法用在时间格式上该怎么办
selectid,min(date)asmindatefrom表名groupbyid
⑹ sql按日期时间统计次数的语句怎么写
select 卡号, count(消费日) 消费天数
from (select distinct 卡号, Day(消费时间) 消费日 from 消费明细)
GROUP by 卡号
⑺ SQL 查询一表所有数据 有重复的按时间取第一条
select distinct 名称, 状态, 时间 from 表 where 状态 = 1 order by 时间 desc
应该是楼主想要的~ 有重复的会按照时间取第一条~
⑻ Sql 如何将表中的考勤记录,按时间段统计次数,不分工号,只按日期和时间段
select convert(char(10),iotime,120) as 日期,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)>=15 then 1 else 0) as 15点之后的个数,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)<15 then 1 else 0) as 15点之前的个数 from 表名 where 这的条件看自己的了,愿意一天或者一个时间段都可以了
⑼ sql 按时间统计
当然可以;
用行转列就行了
--静态写法
select 单位,
sum(case when year(时间)=2005 and datepart(q,时间)=1 then 值 else 0 end) as 2005一季,
sum(case when year(时间)=2005 and datepart(q,时间)=2 then 值 else 0 end) as 2005一季,
..........
from table
group by 单位
竖向显示时;
select 单位,
case when year(时间)=2005 and datepart(q,时间)=1 then '2005年第一季'
when when year(时间)=2005 and datepart(q,时间)=2
then '2005年第二季'
..........end as 显示季,
sum(值) as 显示值
from table
group by 单位,case when year(时间)=2005 and datepart(q,时间)=1 then '2005年第一季'
when when year(时间)=2005 and datepart(q,时间)=2
then '2005年第二季'
..........end
⑽ SQL怎么按时间筛选,表里有个时间的字段,但是存的是长时间格式:2015-01-01 00:00:
代码如下:
select*fromtable_('2015%22:00')ANDdatetimelike('2015%07:00')
--如果时间段是两个字段,则你自己改下即可--