|
|
|
Невозможно сконвертировать char в date в ASA 8
|
|||
|---|---|---|---|
|
#18+
В чем проблема? Есть таблица,где есть поле типа char(10). Надо сконвертировать его в тип date. В таблице уже есть данные. В конвертируемом поле хранятся даты ("27.06.2002"). Из Sybase Central пытаюсь конвертировать char(10) в date. Выдается ошибка: Cannot convert 27.06.2002 to a timestamp. Похоже на то, что ASA 8 принимает день за год, а год за день. В Options к таблице: Setting Default Date_format DD-MM-YYYY YYYY-MM-DD Date_order DMY YMD Timestamp_format DD-MM-YYYY... YYYY-MM-DD.... короче, везде установлено в вид DD-MM-YYYY. Настройка Windows98 в формат DD-MM-YYYY. Пробовал менять разделители, не помогает. Из Delphi пытаюсь вставить в поле дата, та же самая ошибка. Проблема в ASA 8, она почему-то упрямо понимает все как YMD.Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2004, 12:40 |
|
||
|
Невозможно сконвертировать char в date в ASA 8
|
|||
|---|---|---|---|
|
#18+
Чтобы не зависеть от настроек БД и ОС, можно преобразовывать даты с помощью функции CONVERT, например: Код: plaintext 1. Последний параметр функции Convert позволяет точно указать формат конвертации. Так же проверьте опции - возможно на юзера существуют опции, которые перекрывают опции PUBLIC. Это можно сделать так: Код: plaintext 1. 2. Если на юзера действительно есть установленные опции, то их можно сбросить, написав: Код: plaintext 1. 2. Sybase Central и ISQL при коннекте для своей сессии меняют значения некоторых опций. Если Вы хотите, чтобы в них корректно отображались и вводились даты, то лучше всего написать свою хранимую процедуру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Теперь достаточно установить опцию LOGIN_PROCEDURE на эту процедуру в окне Database Options Sybase Central или написать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Почему даты не воспринимаются в Delphi необходимо смотреть отдельно, в зависимости от способа доступа к данным (BDE, ODBC, ADO, DBEXPRESS) - настройки будут разными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2004, 16:33 |
|
||
|
Невозможно сконвертировать char в date в ASA 8
|
|||
|---|---|---|---|
|
#18+
ASCRUS Информация для уточнения: я меняю char на date в структуре таблицы, т.е. вызываю свойства поля меняю в нем char на date. И если у меня там значение лежит в виде 27-06-2002, то выдается упомянутая ошибка, а если лежит в виде 2002-06-27, то все нормально - тип поля меняется на date. Т.е. получается, что независимо от настроек ASA 8 упрямо требует зачение в виде YYYY-MM-DD. Что-то здесь не так, только не знаю пока где искать (опыт небольшой). А с Дельфи следующее: есть поле ввода типа TMaskEdit куда вводится дата, формат ввода даты в поле - !99/99/9999;1;_. Запись добавляется посредством TADOQuery - свойство SQL имеет значение: insert into klient ( ..., doc_date, ... ) values ( ..., :doc_date, ... ).значение параметра формируется строкой q.Parameters.ParamValues['doc_date'] := StrToDate(v_docdate.Text); после выполнения ExecSQL, Дельфи выдает ошибку: Project Project2.exe raised exception class EOleException with message '[Sybase][ODBC Driver][Adaptive Server Anywhere]Restricted data type attribute violation/Cannot convert 01-01-2004 to a timestamp'. Который день бьюсь, не могу понять в чем дело, как обойти проблему. Сделал запрос на параметры, получил следующее: user_name,option,setting 'DBA','Date_format','dd.mm.yyyy' 'DBA','Timestamp_format','dd/mm/yyyy' 'PUBLIC','Date_format','DD-MM-YYYY' 'PUBLIC','Date_order','DMY' 'PUBLIC','Timestamp_format','DD-MM-YYYY HH:NN:SS.SSS' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2004, 18:21 |
|
||
|
Невозможно сконвертировать char в date в ASA 8
|
|||
|---|---|---|---|
|
#18+
Чего то я не пойму lesa, ты пытался сделать, как советовал ACRUS автор set TEMPORARY OPTION DATE_FORMAT = 'DD.MM.YYYY'; set TEMPORARY OPTION TIMESTAMP_FORMAT = 'DD.MM.YYYY HH:NN:SS.SSS'; set TEMPORARY OPTION DATE_ORDER = 'DMY'; ? Хотя бы просто из интеректива, ну или наводишь мышкой в централе на базу, жмешь правую кнопку, выбираешь Set Option и сам ручками выставляешь эти свойства... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 09:34 |
|
||
|
Невозможно сконвертировать char в date в ASA 8
|
|||
|---|---|---|---|
|
#18+
Я Так там уже выставлено (см.выше, я там указал выставленные значения). Так что настройки на базу и настройки на юзеров в базе выставлены в последовательность день-месяц-год, а все равно конвертит char в date только если значение имеет последовательность год-месяц-день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 17:01 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32373466&tid=2014716]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 258ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...