日期:2014-05-18  浏览次数:20692 次

时间对比,大于,等于
SQL code

----2012-01-16 10:12:48.803
----2012-01-16 07:59:52.653
----2012-01-16 07:17:59.897
----2012-01-16 07:12:06.987
----2012-01-16 07:09:09.347
----2012-01-16 07:05:08.190

---我想取时间(2012-01-16 07:59:52.653)以前的数据时间


    时间  <=  convert(datetime,'2012-01-16 07:59:52.653',21) 


     ----取出来的时间,把(2012-01-16 10:12:48.803)也包括在内


---如何写



------解决方案--------------------
无论表中的列是varchar 还是datetime的

SQL code

declare @T table (col varchar(24))
insert into @T
select '2012-01-16 10:12:48.803' union all
select '2012-01-16 07:59:52.653' union all
select '2012-01-16 07:17:59.897' union all
select '2012-01-16 07:12:06.987' union all
select '2012-01-16 07:09:09.347' union all
select '2012-01-16 07:05:08.190'

select * from @T where col <=  convert(datetime,'2012-01-16 07:59:52.653',21) 
/*
------------------------
2012-01-16 07:59:52.653
2012-01-16 07:17:59.897
2012-01-16 07:12:06.987
2012-01-16 07:09:09.347
2012-01-16 07:05:08.190
*/

declare @T1 table (col datetime)
insert into @T1
select '2012-01-16 10:12:48.803' union all
select '2012-01-16 07:59:52.653' union all
select '2012-01-16 07:17:59.897' union all
select '2012-01-16 07:12:06.987' union all
select '2012-01-16 07:09:09.347' union all
select '2012-01-16 07:05:08.190'

select * from @T1 where col <=  convert(datetime,'2012-01-16 07:59:52.653',21) 
/*
------------------------
2012-01-16 07:59:52.653
2012-01-16 07:17:59.897
2012-01-16 07:12:06.987
2012-01-16 07:09:09.347
2012-01-16 07:05:08.190
*/