将文本转换为日期时间,并在两个日期之间进行选择

时间:2013-06-17 13:40:38

标签: sql-server

我试图在两个日期(最后100天)之间获得一些值。但是我的列是一个文本字段,格式为:17.06.2013

SELECT
.....
WHERE Organizations.OrganizationID = '4360' 
AND convert(datetime,convert(varchar(10),StatisticsDate),104) BETWEEN       
    convert(datetime,GETDATE()-100,104) AND convert(datetime,GETDATE(),104) 
GROUP BY  Groups.Name, GroupStatistics.StatisticsDate

Mssql错误:     除非使用IS NULL或LIKE运算符,否则无法比较或排序text,ntext和image数据类型。

有人可以告诉我我做错了什么吗?

谢谢! : - )

更新:

[GroupStatisticsID] [int] IDENTITY(1,1) NOT NULL,
[GroupID] [int] NOT NULL,
[CreateUser] [nvarchar](max) NULL,
[StatisticsDate] [text] NULL,
[memberAttendants] [int] NOT NULL,
[Free] [int] NULL,
[FreeHours] [int] NULL,
[GroupName] [text] NULL,
[GroupNumber] [int] NULL,
[Ser] [text] NULL,
[SerNmbr] [int] NULL,
[SerName] [text] NULL

UPDATE2: 我试过SELECT GETDATE()给了我:2013-06-18 22:38:25:270 这是否意味着我需要转换为此格式才能使用BETWEEN

1 个答案:

答案 0 :(得分:0)

与您之间的日期比较不是您的问题,因为您已经提出过。

您必须使用非文本值分组:

GROUP BY  Name, convert(datetime,convert(varchar(10),StatisticsDate),104)