ошибка - Неправильный синтаксис около "CAST", ожидалось "AS".

Romanov-krd
Дата: 24.04.2015 11:46:08
помогите найти ошибку. Неправильный синтаксис около "CAST", ожидалось "AS".

select stflastname + ',' + stffirstname
as staff, datehired, CAST(('1990-10-01' - DateHired) / 365) as integer)
as yearswithschool
from staff
order by stflastname, stffirstname;


и еще вопрос - как преобразовать в этом примере тип данных? пишет ошибку Типы данных time и varchar в операторе add несовместимы.

select starttime, starttime + '00:10'
as newstarttime
from Classes;
Добрый Э - Эх
Дата: 24.04.2015 11:48:01
Romanov-krd,

скобки круглые за кастом пересчитай...
Glory
Дата: 24.04.2015 11:48:20
Romanov-krd
помогите найти ошибку.

Научитесь считать открывающие и закрывающие скобки
Romanov-krd
Дата: 24.04.2015 14:44:49
да точно! а как тип данных преобразовать. ошибку пишет Тип данных операнда varchar недопустим для оператора subtract.

select stflastname + ',' + stffirstname
as staff, datehired, CAST((('1990-10-01' - DateHired) / 365) as integer)
as yearswithschool
from staff
order by stflastname, stffirstname;
Glory
Дата: 24.04.2015 14:48:43
Romanov-krd
а как тип данных преобразовать.

Не пробовали через функции преобразования ?

Romanov-krd
'1990-10-01' - DateHired

Это вы из "молока" хотите вычесть "кирпичи" ?
Добрый Э - Эх
Дата: 24.04.2015 14:49:56
Romanov-krd
да точно! а как тип данных преобразовать. ошибку пишет Тип данных операнда varchar недопустим для оператора subtract.
select stflastname + ',' + stffirstname
as staff, datehired, 
CAST((('1990-10-01' - DateHired) / 365) as integer)
as yearswithschool
from staff
order by stflastname, stffirstname;
попробуй явно преобразовать '1990-10-01' к дате.
кроме того, поле DateHired какой тип имеет? Если не дата, то тоже нужно явно преобразовать к дате.
и ещё, разность дат не во всех версиях сервера поддерживается. В до 2008-е времена для получения разности между датами нужно использовать функцию Datediff
iap
Дата: 24.04.2015 14:59:47
Добрый Э - Эх
разность дат не во всех версиях сервера поддерживается. В до 2008-е времена для получения разности между датами нужно использовать функцию Datediff
Чо-то сомневаюсь...
DATEDIFF-то, конечно, всегда.
o-o
Дата: 24.04.2015 15:15:06
iap
Добрый Э - Эх
разность дат не во всех версиях сервера поддерживается. В до 2008-е времена для получения разности между датами нужно использовать функцию Datediff
Чо-то сомневаюсь...

никому нельзя верить на слово.
не сочтите за пропагадну 2000-ого, просто 2005 временно недоступен
Добрый Э - Эх
Дата: 24.04.2015 15:19:18
iap,

Ничего не понял, но соглашусь с тобой... :)
o-o
Дата: 24.04.2015 15:31:44
Добрый Э - Эх
iap,
Ничего не понял, но соглашусь с тобой... :)

это тогда что, я что ли не понимаю?
Добрый Э - Эх говорит: разность дат не во всех версиях сервера поддерживается
iap сомневается.
правильно делает, т.к. можно было вычитать даты как минимум со времен 2000-ого.
а что бесспорно, то DATEDIFF во все времена и тут все дружно подписались :)