0

我试图在两个日期(最后 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 错误:无法比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。

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

谢谢!:-)

更新:

[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

4

1 回答 1

0

在您的情况下,与 between 的日期比较不是问题,因为您已经投了。

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

GROUP BY  Name, convert(datetime,convert(varchar(10),StatisticsDate),104)
于 2013-06-17T14:02:42.903 回答