![]() |
|
Модераторы: Akina |
![]()
|
|
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Здравствуйте.
Недавно начал работать с MS sql server 2000 и столкнулся с такой проблемой. Если создать таблицу TEST с двумя полями: Nomer :int и date_d:datetime. И вводить в неё информацию через SQL SERVER Enterprise manager, то она сохраняется в таком виде: Nomer Date_d 1 14.01.2007. Но при выводе записи по дате: select * from TEST where date_d='14/01/2007' возникает ошибка в виде 'couldn't convert...'. А связано это с тем, что в базе данных информация о дате хранится в виде год.месяц.число(если сделать select * from TEST). Тоесть запрос: select * from TEST where date_d='2007/01/14' сработает. Вопрос: Можли ли сделать так, чтобы дата при просмотре в интерпрайз мэнэджере отображалась в том же виде как она хранится в базе. Привыкнуть не проблема, но непонятно с чем связано такое несогласование. P.S> Не исключаю возможности, что дело в самом ентерпрайз мэнэджере |
|||
|
||||
| boevik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 15 Всего: 35 |
Если поле объявлено как datetime, то в базе оно хранится в формате datetime.
Весь вопрос, как с ним работать. К примеру, можно обратиться таким образом (format 'yyyy-mm-dd'):
или американский формат (default format)
Ну а если хочется работать с форматом dd/mm/yyyy, то следует явно указать серверу:
Это не несогласование, это feather Enterprise Manager это client program которая отражает даты и другие данные в соотвествии настроек клиентского компютера. -------------------- Никогда не говори никогда |
||||||
|
|||||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Ок, спс. Про dateforamt не знал, может есть у кого компактный хелп?
|
|||
|
||||
| speshi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.11.2006 Где: София Репутация: нет Всего: нет |
USE ANSI
select * from TEST where date_d='20070114' &&& ГГГГММДД |
|||
|
||||
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
1. До каких пор действует эта команда, только на один запрос? Тогда прийдется это всегда добавалять к select-у. 2. Есть два установленных сервера, один из них воспринимает даты в виде дмг, а другой мдг. От чего это зависит? Ставильсь вроде одинаково. Можно ли это изменить где либо в настройках сервера? 3. Каков лучший и правильный способ что написание прграммы что бы она коректно работала с датой, независимо от настроек сервера? --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
| ТоляМБА |
|
||||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: нет Всего: 252 |
source |
||||||
|
|||||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |