SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.11.2010 21:56:07

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

фрагмент SQL-кода который не хочет работать

Здравствуйте. Мне необходимо ответить на вопрос на сайте интуит. Помогите пожалуйста.

Дан некоторый фрагмент SQL-кода:

DECLARE @a CHAR(12)
DECLARE @b DATETIME
DECLARE @c INT
SET @a=’12.11.03
SET @b=’3.04.04


Укажите правильные операторы для вычисления количества дней между датами:

1. SET @c=CAST(CAST(@a AS DATETIME)-@b AS INT)

2. SET @c=CAST(@a AS INT) –CAST(@b AS INT)

3. SET @c=CAST((@a-@b) AS INT)

Неактивен

 

#2 15.11.2010 21:58:18

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: фрагмент SQL-кода который не хочет работать

DECLARE @b DATETIME;
DECLARE @c INT;


из за этих строк генерится ошибка.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @c INT' at line 1

Неактивен

 

#3 16.11.2010 01:03:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: фрагмент SQL-кода который не хочет работать

То есть Вы хотите привлечь коллективный разум к получению Вами сертификата?
Интересный подход smile

Тогда дам подсказку: DECLARE работают внутри хранимых процедур.

Неактивен

 

#4 16.11.2010 12:11:32

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: фрагмент SQL-кода который не хочет работать

Не не! мне этот сертификат не нужен. Меня попросил друг. Преподаватель ему сказала выполни несколько заданий и типо поставит зачёт или что то в этом духе. Если бы мне это было нужно, я бы изучил этот раздел сам, но пока хранимые процедуры использовать не приходилось. Если не сложно помогите пожалуйста на этом единственном вопросе остановился.

Неактивен

 

#5 17.11.2010 02:27:33

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: фрагмент SQL-кода который не хочет работать

Судя по приведенному фрагменту задание не по MySQL. В MySQL нельзя использовать пользовательские переменные (те, что начинаются с собаки) в качестве локальных (т.е. в части declare).

В документации не сказано про отличие реализации функции cast от стандарта SQL (но это не является гарантией отсутствия такого отличия).
http://dev.mysql.com/doc/refman/5.1/en/ … ction_cast

В MySQL не один из указанных операторов не вычислит количество дней между датами.

Неактивен

 

#6 17.11.2010 10:53:32

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: фрагмент SQL-кода который не хочет работать

Спасибо. Мне этот интуит сразу не понравился...

Неактивен

 

#7 17.11.2010 11:53:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: фрагмент SQL-кода который не хочет работать

Но в MSSQL вычислит. Впрочем, какой из них правильный — сказать затруднительно smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson