Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Ключевое поле дата/время

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Ламер
Гость





СообщениеДобавлено: Вт Июл 22 2003 16:00    Заголовок сообщения: Ключевое поле дата/время Ответить с цитатой

можно ли задавать ключевым поле с типом дата/время, если да то почему такой запрос не работает?
UPDATE history SET history.[cost] = 0
WHERE history.Дата='22.07.2003';
говорит не совпадение типов!
Спасибо!
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Вт Июл 22 2003 16:07    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

history.Дата имеет тип даты, а '22.07.2003' имеет тип строки. Должно быть что-то такое:

history.Дата=СтрокаПоРусски2Дата('22.07.2003');

или

Дата2СтрокаПоРусски(history.Дата)='22.07.2003';
Вернуться к началу
Ламер
Гость





СообщениеДобавлено: Вт Июл 22 2003 16:16    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

Вы не могли бы привести пример, чтобы было понятно, что такое
СтрокаПоРусски2Дата?
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Вт Июл 22 2003 18:19    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

СтрокаПоРусски2Дата() и Дата2СтрокаПоРусски() зависят от среды, в которой делается работа. Так как ты не указал, в чем работаешь, вот я написал смысл функции, а не точное её представление. Вот пример таких функций на xBase (FoxPro, Clipper, DBase, FoxBase, Rebus и т. д.)

set date german
...dtoc(переменная-дата) && это Дата2СтрокаПоРусски()
...ctod(переменная-строка) && это СтрокаПоРусски2Дата()

Слово "ПоРусски" в обеих функциях использовано потому, что ты привел свою дату в виде символьной строки в русском (немецком) формате, что не характерно. Вообще говоря, среды разработки обычно предлагают универсальные функции типа: date(год, месяц, день). Поищи в своем справочнике такую и используй. В моем же примере русский формат задается не в самой функции, а в установочном предложении "set date german".

Надеюсь, все понятно Smile
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Вт Июл 22 2003 18:29    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

СтрокаПоРусски2Дата() и Дата2СтрокаПоРусски() зависят от среды, в которой делается работа. Так как ты не указал, в чем работаешь, вот я написал смысл функции, а не точное её представление. Вот пример таких функций на xBase (FoxPro, Clipper, DBase, FoxBase, Rebus и т. д.)

set date german
...dtoc(переменная-дата) && это Дата2СтрокаПоРусски()
...ctod(переменная-строка) && это СтрокаПоРусски2Дата()

Слово "ПоРусски" в обеих функциях использовано потому, что ты привел свою дату в виде символьной строки в русском (немецком) формате, что не характерно. Вообще говоря, среды разработки обычно предлагают универсальные функции типа: date(год, месяц, день). Поищи в своем справочнике такую и используй. В моем же примере русский формат задается не в самой функции, а в установочном предложении "set date german".

Надеюсь, все понятно Smile
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Вт Июл 22 2003 18:32    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

СтрокаПоРусски2Дата() и Дата2СтрокаПоРусски() -- это функции, транслирующие символьное и строковое представление даты друг в друга. Они зависят от среды, в которой делается работа. Так как ты не указал, в чем работаешь, вот я написал смысл функции, а не точное её представление. Вот пример таких функций на xBase (FoxPro, Clipper, DBase, FoxBase, Rebus и т. д.)

set date german
...dtoc(переменная-дата) && это Дата2СтрокаПоРусски()
...ctod(переменная-строка) && это СтрокаПоРусски2Дата()

Слово "ПоРусски" в обеих функциях использовано потому, что ты привел свою дату в виде символьной строки в русском (немецком) формате, что не характерно. Вообще говоря, среды разработки обычно предлагают универсальные функции типа date(год, месяц, день). Такие функции не зависят от символьного представления. Поищи в своем справочнике такую и используй. В моем же примере русский формат задается не в самой функции, а в установочном предложении "set date german".

Надеюсь, все понятно Smile
Вернуться к началу
Ламер
Гость





СообщениеДобавлено: Ср Июл 23 2003 12:22    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

Вы не могли бы сказать как это сделать для Access, а то я отправляю строку и программы в базу и если делать DateValue("22.07.2003"), то выдается ошибка, но в самом Accesse этот запрос работает!
Вернуться к началу
Ламер
Гость





СообщениеДобавлено: Ср Июл 23 2003 12:22    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

Вы не могли бы сказать как это сделать для Access, а то я отправляю строку и программы в базу и если делать DateValue("22.07.2003"), то выдается ошибка, но в самом Accesse этот запрос работает!
Вернуться к началу
Ламер
Гость





СообщениеДобавлено: Ср Июл 23 2003 12:29    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

Вы не могли бы подсказать как это сделать для Access
я делал вот так:
UPDATE history SET history.[YTM] = '15.38'
WHERE history.[date]=DateValue("22.03.2003");
UPDATE history SET history.[YTM] = '15.38'
WHERE history.[date]=CDate("22.03.2003");
в самом аксесе это работает, а вот когда отправляю эту строку из программы, то выдает ошибку!
Спасибо!
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Июл 23 2003 18:41    Заголовок сообщения: Re: Ключевое поле дата/время Ответить с цитатой

Вот справка из аксесса:

DateSerial Function Example
This example uses the DateSerial function to return the date for the specified year, month, and day.

Dim MyDate
' MyDate contains the date for February 12, 1969.
MyDate = DateSerial(1969, 2, 12) ' Return a date.

Вот ещё справка из аксесса про дату:

date literal
Any sequence of characters with a valid format that is surrounded by number signs (#). Valid formats include the date format specified by the locale settings for your code or the universal date format.

For example, #12/31/92# is the date literal that represents December 31, 1992, where English-U.S. is the locale setting for your application. Use date literals to maximize portability across national languages


Если с английским у тебя как в советской школе, то говорю короче: DateSerial(год, месяц, день) или #день/месяц/год#. Первый вариант универсальный, во втором можно попасть мимо формата.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...