Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
Добрый день!

Столкнулся с проблемой: по запросу из MS SQL получаем дату 20-апр-1900, а в SqlDataReader, в приложении, возвращает дату уже с 2000 годом!

Почему так происходит? И как поправить?
27 мар 18, 07:50    [21288374]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34707
saszay,
Дай dml таблы и код
27 мар 18, 08:32    [21288439]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
Таблица
CREATE TABLE [dbo].[Kod_Desc](
	[koID] [bigint] NOT NULL,
	[kodDate] [datetime] NOT NULL,
	[kodDesc] [nvarchar](1024) NULL,
	[kodPrice] [money] NULL,
	[usID] [smallint] NOT NULL,
	[ID] [int] IDENTITY(-2147483648,1) NOT NULL,
 CONSTRAINT [PK_Kod_Desc] PRIMARY KEY NONCLUSTERED 
([ID] ASC) WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
)


Запрос
SELECT * FROM Kod_Desc WHERE koID = -9223372036854490735;
27 мар 18, 08:40    [21288458]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
Запрос в самой программе:
CpsDateTime(DataBinder.Eval(__e.Item.DataItem, "kodDate"))
27 мар 18, 08:50    [21288480]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34707
saszay,
На этот код тебе уже отвечали))).
Цель твоего поста?
27 мар 18, 09:39    [21288626]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
Petro123
saszay,
На этот код тебе уже отвечали))).
Цель твоего поста?


Не понял
27 мар 18, 09:41    [21288630]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34707
saszay,
У тебя повтор темы. Что не понял?
27 мар 18, 09:52    [21288670]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
Увидел, но решения так и нет...
27 мар 18, 10:11    [21288795]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
hVostt
Member

Откуда:
Сообщений: 14762
saszay,

Тип даты/времени в SQL какой? Выбирайте всегда DateTime2.
27 мар 18, 16:24    [21290582]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
hVostt
saszay,

Тип даты/времени в SQL какой? Выбирайте всегда DateTime2.


Просто datetime. Мне достаточна его точность. И SQL выводит всё правильно, а клиент уже что-то сам меняет
27 мар 18, 16:30    [21290605]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
hVostt
Member

Откуда:
Сообщений: 14762
saszay
hVostt
saszay,

Тип даты/времени в SQL какой? Выбирайте всегда DateTime2.


Просто datetime. Мне достаточна его точность. И SQL выводит всё правильно, а клиент уже что-то сам меняет


Не важно, достаточна вам его или нет точность. Для правильной работы с датой временем из .NET нужно выбирать DateTime2.

Вот из MSDN

MSDN
Use the time, date, datetime2 and datetimeoffset data types for new work. These types align with the SQL Standard. They are more portable. time, datetime2 and datetimeoffset provide more seconds precision. datetimeoffset provides time zone support for globally deployed applications.


Вы спросили как решать, вот ответ. Что ещё нужно?
27 мар 18, 18:12    [21291040]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с датой  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 424
[quot hVostt]
saszay
пропущено...


Вы спросили как решать, вот ответ. Что ещё нужно?


Т.е. если у меня MS SQL 2005 то проблема не решается? Чтобы клиент правильно показывал дату, мне нужно сменить сервер? И если речь шла о секундах (или нано секунд), ещё бы можно было понять. Но речь идёт о годах, причём не сильно далёких...

На своём примере я изменил запрос и он стал возвращать
CAST(kodDate As datetime2)
, но проблему это не решило...
28 мар 18, 05:13    [21291777]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить