【发布时间】:2013-06-17 13:40:38
【问题描述】:
我试图在两个日期(最后 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
更新2:
我试过SELECT GETDATE(),它给了我:2013-06-18 22:38:25:270
这是否意味着我需要转换为这种格式才能使用BETWEEN?
【问题讨论】:
-
你能用数据类型发布你的表结构吗?
-
为什么要使用 TEXT 作为 StatisticsDate? SQL Server 中的 TEXT 是为大文本块(最大 2GB)保留的,因此对于 GROUP BY 函数来说实际上是不可接受的。我真的无法理解您正在使用的日期需要存储在那个大小的字段中的情况。只是想知道。
-
嗨莫里斯。新手无知。我认为现在改变它很复杂。但在我的下一个项目中,日期字段将是日期字段。
标签: sql-server