Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 что-то случилось с форматом даты  [new]
strizzz
Member

Откуда: SPb
Сообщений: 737
всё работало, но в один прекрасный момент перестало

declare @DateBill as smalldatetime

set @DateBill = (select DateBill from billsin where BillID = 46)

select CurrencyDollar from currencyrate where CurrencyDate = @DateBill

на select @DateBill выдаёт 2009-03-08 00:00:00, в таблице соответствует этой дате CurrencyDollar

если так, тоже не выбирает

select CurrencyDollar from currencyrate where CurrencyDate = (select DateBill from billsin where BillID = 46)

а если делаю так

select CurrencyDollar from currencyrate where CurrencyDate = '08.03.2009'

то срабатывает, фактически дата 3 августа 2009

что могло случиться, что перестало работать и как это лечить?

заранее благодарен!
4 дек 09, 13:38    [8019762]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
Топ 10 вопрос 8.
4 дек 09, 13:39    [8019772]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
фактически дата 3 августа 2009


Гм... Фактически, это в таблице, и там, таки фактически 8 марта.

автор
что могло случиться, что перестало работать и как это лечить?


Например, сменился язык у логина или SET DATEFORMAT "сказали".
4 дек 09, 13:42    [8019794]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
В сессии, вносившей изменения, естественно.
4 дек 09, 13:43    [8019808]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
strizzz
Member

Откуда: SPb
Сообщений: 737
Гавриленко Сергей Алексеевич,

Вопрос: Как задать формат даты на SQL Server ?
Ответ: Формат преобразования символьной строки в дату задается так.
Формат отображения даты задается самим клиентским приложением


само клиентское приложение выбирает из currencyrate верные значения(т. е. 3 августа, а не 8 марта)

pkarklin,

автор
В сессии, вносившей изменения, естественно.


действительно всё произошло после редактирования таблицы billsin, но не currencyrate

SET DATEFORMAT "не говорил", язык у логина не менял.
4 дек 09, 14:19    [8020139]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
strizzz
само клиентское приложение выбирает из currencyrate верные значения(т. е. 3 августа, а не 8 марта)
На клиентском компьютеререгиональные настройки одни, параметры в SQL сервере другие.
Откуда серверу знать, где в строке месяц, а где день?
Если бы строка былы в виде '20090803', то тогда другое дело. Всё однозначно и всегда правильно.
Я вот не понимаю, почему бы не организовать передачу серверу именно такой строки?
Это что, так трудно? (Не считая обычных рекомендаций пользоваться в клиентской программе
параметрами, которые сейчас на Вас посыпятся )
4 дек 09, 14:27    [8020224]     Ответить | Цитировать Сообщить модератору
 Re: что-то случилось с форматом даты  [new]
strizzz
Member

Откуда: SPb
Сообщений: 737
iap,

всё разобрался, дело было в aspшном object data source, в котором, чтобы даты передавались корректно нужно указывать параметры явным образом
4 дек 09, 15:34    [8020912]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить