2013-06-17 3 views
0

두 날짜 (100 일 마지막 날짜) 사이에 값을 가져 오려고합니다. 그러나 내 열 포맷 텍스트 필드이다 : 2013년 6월 17일텍스트를 datetime으로 변환하고 두 날짜 사이를 선택하십시오.

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 오류 : 텍스트, ntext 및 이미지 데이터 형식이 비교 될 수없는 또는 NULL 또는 LIKE 연산자 IS 사용하는 경우를 제외하고, 분류.

누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까?

감사합니다. :-)

는 UPDATE :

[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 : 나는 BETWEEN을 사용하려면이 형식을 변환 할 필요가 의미 2013-06-18 22:38:25:270 않습니다 나는 내게 준 SELECT GETDATE() 시도?

+0

당신이 데이터 형식의 테이블 구조를 게시 할 수 있습니까? – Rohan

+0

왜 StatisticsDate에 TEXT를 사용하고 있습니까? SQL Server의 TEXT는 큰 텍스트 블록 (최대 2GB) 용으로 예약되어 있으므로 GROUP BY 기능에 실제로 허용되지 않습니다. 나는 작업하는 날짜가 그 크기의 필드에 저장 될 필요가있는 시나리오를 정말로 짐작할 수 없습니다. 그냥 궁금해. –

+0

안녕하세요. Maurice. 초보자 무지. 그리고 지금은 그것을 바꾸기 위해 복잡해졌습니다. 하지만 다음 프로젝트에서는 날짜 필드가 날짜 필드가됩니다. – DevNewbie

답변

0

당신이 이미 캐스팅 한 이후로 당신의 경우에는 between과의 날짜 비교가 문제가되지 않습니다.

그렇지 텍스트 값 그룹에있을 것이다 :

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

안녕하세요. Bummi. 이제이 오류가 발생했습니다 : 날짜 및/또는 시간을 문자열에서 변환 할 때 변환이 실패했습니다. – DevNewbie

+0

에는 여러 가지 이유가있을 수 있습니다. http://stackoverflow.com/search?q=Conversion+failed+when+converting+date+and%2For+time+from+character+string – bummi

관련 문제