数据表里面有DateTime字段, 日期和时间同时进行区间查询

数据表里面有DateTime字段, 日期和时间同时进行时间区间查询
有表
字段名称         字段类型
GUID             VARCHAR(
50)
str_DateTime     DATETIME

想实现查询2005年5月1日
-2006年1月1日
时间在18:00到19:00的所有GUID


select 
    
* 
from 
    TableName
where 
    convert(
char(10),str_DateTime,120) between '2005-05-01' and '2006-01-01'
    and
    convert(
char(5),str_DateTime,114) between '18:00' and '19:00'
在工作中也遇到了一个这样的问题
20060214T18000000转化为2006
-02-14 18:00:00
declare @var varchar(
50)
set @var='20060214T18000000'
select left(@var,
4)+'-'+substring(@var,5,2)+'-'+substring(@var,7,2)+' '
+substring(@var,10,2)+':'+substring(@var,12,2)+':'+substring(@var,14,2)
把字段转化为DateTime 类型
 CONVERT(datetime, LEFT(dbo.SENTR_ExLog.IOTime, 
4
      
+ '-' + SUBSTRING(dbo.SENTR_ExLog.IOTime, 52
      
+ '-' + SUBSTRING(dbo.SENTR_ExLog.IOTime, 72
      
+ ' ' + SUBSTRING(dbo.SENTR_ExLog.IOTime, 102
      
+ ':' + SUBSTRING(dbo.SENTR_ExLog.IOTime, 122
      
+ ':' + SUBSTRING(dbo.SENTR_ExLog.IOTime, 142)) AS IOTime屏蔽1900-1-1日的日期不显示
select Guid,ProjectName,StartDate,Case EndDate when 
'1900-1-1 0:00:00' then ''  else Convert(char(10),EndDate,120)  end AS EndDate,Memo,IsDelete 
from pgProject

posted on 2006-12-19 13:53  玄新  阅读(603)  评论(0编辑  收藏  举报

导航