Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Преобразование varchar в datetime и использование выражения {fn current_timestam
|
|||
|---|---|---|---|
|
#18+
У нас возникла проблема работы с функциями ODBC из запросов MSSQL. Функция MSSQL current_timestamp возвращает результат типа datetime, пример использования: select current_timestamp Результат: 2002-03-15 12:51:19.590 Функция ODBC {fn current_timestamp()} возвращает результат типа varchar, пример использования: select {fn current_timestamp(0)} Результат: 2002-03-15 12:50:45 Беда в том, что дата, возвращаемая функцией ODBC current_timestamp, представлена текстовым типом данных, причем в локальном формате, в результате чего, эту дату я не могу ни записать в поле таблицы datetime, ни сравнивать с полями таблицы у которых тип данных datetime. Программа закрытая и я не могу изменять и добавлять запросы, подскажите что и где можно изменить в настройках сервера, чтобы запросы c использованием {fn current_timestamp()} нормально работали. Мне надо чтобы эта функция возвращала строку с датой в американском формате, а не локальном. Реальный запрос: insert into histor (dbid,entity_dbid,entitydef_id,entitydef_name,user_name,action_name,action_timestamp,old_state,new_state) values (33554480, 33554435, 16777224,'Defect','ok','Submit', {fn current_timestamp(0)},'no value','Submitted') Тестовый пример: 1. Создание тестовой таблицы (все прошло нормально): create table t(n int, b datetime) 2. Добавили запись с текущим timestamp (все прошло нормально): insert into t(n, b) values(1, current_timestamp) 3. Добавили запись с датой в виде строки, неявное преобразование, дата представлена формате datetime "год-день-месяц час:минута:секунда" (все прошло нормально): insert into t(n, b) values(2, '2002-15-03 12:15:18') 4. Добавление записи с датой в формате "год-месяц-день час:минута:секунда" невозможно, выдается ошибка о неправильном формате данных: insert into t(n, b) values(3, '2002-03-15 12:15:18') Server: Msg 242, Level 16, State 3, Line 1 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The statement has been terminated. 5. Аналогичная проблема встает и при использовании функции ODBC {fn current_timestamp()} insert into t(n, b) values(4, {fn current_timestamp(0)}) Server: Msg 242, Level 16, State 3, Line 1 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The statement has been terminated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2002, 08:13 |
|
||
|
Преобразование varchar в datetime и использование выражения {fn current_timestam
|
|||
|---|---|---|---|
|
#18+
В настройках пользователя базы данных установили язык по умолчанию в значение English, после чего все стало работать. Проблема возникала с программой ClearQuest. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 12:42 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32025703&tid=1823478]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
4ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 376ms |

| 0 / 0 |
