2011-02-02 6 views
0

В продолжение моих модулей модулей Coldfusion и Student Certifications у меня возникла небольшая проблема.SQL Server 2008: DateDiff Возвращение значения negivate

Когда я возвращаю значения для Coldfusion, используя нижеприведенный запрос, я получаю даты negitave и postive.

Что мне нужно, так это вернуть даты только больше или равно сегодняшнему, поэтому, если cprAdultExp является 2/27/2011, мне нужно вернуть это значение как 25, а если kidExp - 1/2/2011 Мне нужно, чтобы он ничего не возвращал.

Любые мысли?

SQL:

SELECT 
p.firstName, 
p.lastName, 
m.profileID, 
dateDiff(day,getDate(),m.cprAdultExp) as adultExp, 
dateDiff(day,getDate(),m.cprInfantChildExp) as kidExp, 
dateDiff(day,getDate(),m.cprFPRExp) as frpExp, 
dateDiff(day,getDate(),m.aedExp) as aExp, 
dateDiff(day,getDate(),m.firstAidExp) as aidExp, 
dateDiff(day,getDate(),m.emtExp) as eExp, 
dateDiff(day,getDate(),m.waterSafetyInstructionExp) as waterExpt, 
dateDiff(day,getDate(),m.bloodPathogensExp) as bloodExp, 
dateDiff(day,getDate(),m.oxygenAdminExp) as oxyExp, 
dateDiff(day,getDate(),m.lifegaurdingExp) as lifeExp, 
dateDiff(day,getDate(),m.wildernessResponderExp) as wildExp, 
m.certNotes 
FROM 
pro_Profile p 
LEFT JOIN mod_StudentCertifications m 
ON 
    m.profileID = p.profileID 
WHERE 
p.isDeleted='False'   
+1

Есть ли причина, по которой вы не можете просто включить условие в предложение 'WHERE'? – Matthew

ответ

3

Что-то вроде:

CASE WHEN m.cprAdultExp > getDate() THEN dateDiff(day,getDate(),m.cprAdultExp) ELSE NULL END as adultExp 

Является ли это правильно?

+0

Я делаю случай для каждого элемента? –

+0

@ пользователь494901: есть. – orangepips

Смежные вопросы