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

Откуда: Ивано-Франковск-Киев
Сообщений: 467
Как у SQL-Server получить из поля типа Smalldatetime только дату без времени?
или как задать тип поля у таблице чтобы туда писать только дату без времени?
4 фев 05, 00:06    [1298970]     Ответить | Цитировать Сообщить модератору
 Re: Дата без времени  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Shovgenyuk
Как у SQL-Server получить из поля типа Smalldatetime только дату без времени?

Смотри здесь
https://www.sql.ru/faq/faq_topic.aspx?fid=129

Shovgenyuk
или как задать тип поля у таблице чтобы туда писать только дату без времени?

Насколько я знаю, такого не существует. Есть 2 принципиальных варианта решения проблемы:

-) Следить за тем, чтобы часть со временем всегда было равна 0. Это по сути и есть дата без времени

-) Отказаться от формата DateTime или SmallDateTime и хранить дату в других типах данных: Integer (количество дней от фиксированной даты) или Character(10) в виде строки формата YYYYMMDD. В обоих случаях такие поля можно индексировать и сравнивать значения на больше/меньше.
4 фев 05, 00:18    [1298981]     Ответить | Цитировать Сообщить модератору
 Re: Дата без времени  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Shovgenyuk
или как задать тип поля у таблице чтобы туда писать только дату без времени?
Про то как симитировать - уже сказали.
Для информации - в MSSQL Server 2005 добавлено три новых типа - дата, время и датавремя по гринвичу. Причем дата и датавремя по гринвичуотсчитывается от 1 января 1 года нашей эры.
4 фев 05, 06:52    [1299111]     Ответить | Цитировать Сообщить модератору
 Re: Дата без времени  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
хранить в других типах данных крайне неудобно.
можно применить :
cast(cast(MyDateTime-0.5 as int) as Smalldatetime)
для присвоения достаточно:
set дата=cast(MyDateTime-0.5 as int)
4 фев 05, 11:27    [1299662]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить