Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ламер Гость
|
Добавлено: Вт Июл 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".
Надеюсь, все понятно |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Вт Июл 22 2003 18:29 Заголовок сообщения: Re: Ключевое поле дата/время |
|
|
СтрокаПоРусски2Дата() и Дата2СтрокаПоРусски() зависят от среды, в которой делается работа. Так как ты не указал, в чем работаешь, вот я написал смысл функции, а не точное её представление. Вот пример таких функций на xBase (FoxPro, Clipper, DBase, FoxBase, Rebus и т. д.)
set date german ...dtoc(переменная-дата) && это Дата2СтрокаПоРусски() ...ctod(переменная-строка) && это СтрокаПоРусски2Дата()
Слово "ПоРусски" в обеих функциях использовано потому, что ты привел свою дату в виде символьной строки в русском (немецком) формате, что не характерно. Вообще говоря, среды разработки обычно предлагают универсальные функции типа: date(год, месяц, день). Поищи в своем справочнике такую и используй. В моем же примере русский формат задается не в самой функции, а в установочном предложении "set date german".
Надеюсь, все понятно |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Вт Июл 22 2003 18:32 Заголовок сообщения: Re: Ключевое поле дата/время |
|
|
СтрокаПоРусски2Дата() и Дата2СтрокаПоРусски() -- это функции, транслирующие символьное и строковое представление даты друг в друга. Они зависят от среды, в которой делается работа. Так как ты не указал, в чем работаешь, вот я написал смысл функции, а не точное её представление. Вот пример таких функций на xBase (FoxPro, Clipper, DBase, FoxBase, Rebus и т. д.)
set date german ...dtoc(переменная-дата) && это Дата2СтрокаПоРусски() ...ctod(переменная-строка) && это СтрокаПоРусски2Дата()
Слово "ПоРусски" в обеих функциях использовано потому, что ты привел свою дату в виде символьной строки в русском (немецком) формате, что не характерно. Вообще говоря, среды разработки обычно предлагают универсальные функции типа date(год, месяц, день). Такие функции не зависят от символьного представления. Поищи в своем справочнике такую и используй. В моем же примере русский формат задается не в самой функции, а в установочном предложении "set date german".
Надеюсь, все понятно |
|
Вернуться к началу |
|
|
Ламер Гость
|
Добавлено: Ср Июл 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(год, месяц, день) или #день/месяц/год#. Первый вариант универсальный, во втором можно попасть мимо формата. |
|
Вернуться к началу |
|
|
|