declare @StartDate varchar(10),@EndDate varchar(10)
set @StartDate='2008-01-12'
set @EndDate='2009-01-12'
select * from Table_Queue where queuetime
between cast(@StartDate as datetime) and cast(@EndDate as DateTime) order by patientpk desc,queuetime asc
set @StartDate='2008-01-12'
set @EndDate='2009-01-12'
select * from Table_Queue where queuetime
between cast(@StartDate as datetime) and cast(@EndDate as DateTime) order by patientpk desc,queuetime asc
select * from Table_Queue
where queuetime>=StartDate
and
queuetime<cast(EndDate as Datetime)+1
select * from Table_Queue where queuetime between cast('" + StartDate + " 00:00:00' as datetime) and cast('" + EndDate + " 23:59:59' as DateTime)查询出数据后 然后按queuetime (时间格式的字符串)的年-月-日分组 并且分组后 每组信息都要满足 patientpk desc,queuetime asc
where queuetime between cast('" + StartDate + " 00:00:00' as datetime) and cast('" + EndDate + " 23:59:59' as DateTime)
order by queuetime,patientpk desc,queuetime asc
第一排序queuetime,相当于分组,queuetime一样时按patientpk desc,queuetime asc排序
何必那么麻烦呢
left(cast(queuetime as varchar(20)),0,10)能找到吗?
select *,CONVERT(varchar(20), queuetime, 23) as queuetime1 from Table_Queue where queuetime between cast('" + StartDate + " 00:00:00' as datetime) and cast('" + EndDate + " 23:59:59' as DateTime) order by queuetime1 asc,patientpk desc,queuetime asc
把*换成要查询的列名,使用CONVERT(varchar(100), queuetime, 23)是把日期格式化成如:2009-07-08的样式,这样,查询时,相当于多了一列格式化日期的列,避免使用group by带来的麻烦(有些列无法使用聚合函数),又可以实现按天排序