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

Откуда:
Сообщений: 27
Добрый день,
есть вопрос от новичка в SQL:
Есть дата в формате "200-07-01 00:00:00.000" ее надо изменить в таблице на интегер "2000701" что бы в последствии сделать из нее ключ... какая команда позволяет это сделать?
7 май 12, 11:34    [12519386]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
nuhrab:
1. Это нормально, что у вас 200 год? Тип данных даты и сервер какие?
2. Вы точно осознаете что именно хотите сделать, а главное зачем?
7 май 12, 11:36    [12519391]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
ой 2000 год
7 май 12, 11:37    [12519394]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
такое задание
7 май 12, 11:37    [12519395]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
kDnZP
nuhrab:
1. Это нормально, что у вас 200 год? Тип данных даты и сервер какие?
2. Вы точно осознаете что именно хотите сделать, а главное зачем?

Microsoft SQL Server 2008R2
[FullDateAlternateKey] [datetime] NULL,
7 май 12, 11:40    [12519402]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Что-то в этой идее есть неправильное...
DECLARE @dt DATETIME = '2000-07-01T00:00:00.000'
SELECT @dt dt, CAST(CONVERT(VARCHAR(10),@dt,112) AS INT) di
7 май 12, 11:52    [12519422]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
nuhrab, вы считаете, что ключи могут быть только целочисленные?
7 май 12, 12:25    [12519515]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
invm
nuhrab, вы считаете, что ключи могут быть только целочисленные?

Уважаемый, если Вы прочтете выше Вашего поста, Вы получите исчерпывающую информацию, и ответ на Ваш замечательный вопрос
7 май 12, 12:34    [12519554]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
nuhrab
invm
nuhrab, вы считаете, что ключи могут быть только целочисленные?

Уважаемый, если Вы прочтете выше Вашего поста, Вы получите исчерпывающую информацию, и ответ на Ваш замечательный вопрос

нахера для 2008R2 , переводить из даты в целочисленное значение, когда есть уже тип данных DATE без времени. ?
Для тестового задания , то же не самый умный вопрос.
7 май 12, 12:44    [12519618]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
Ken@t,
Ну что я могу сказать.... хз.... но задание заданно.....
7 май 12, 13:21    [12519850]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
nuhrab
но задание заданно.....
Хозяин-Барин
Холопство.

Узнать почему и зачем такое задание задано оно не запрещает.
7 май 12, 13:39    [12519941]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
nuhrab
задание заданно.....
Кому?
7 май 12, 14:00    [12520038]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
Для всех товарищей у которых сейчас пауза и им скучно объясняю:
1. Я учусь
2. задание заданно мне моим преподователем - цель задание конвертация из datetime в int
3. задания не дискутируются, потому что не дискутируются
4. если у вас не по существу, то не надо спамить (все мы самые умные....)
5. Спасибо, что зашли в этот топик
7 май 12, 14:08    [12520070]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Glory
Member

Откуда:
Сообщений: 104751
nuhrab
1. Я учусь

И как вы попробовали решить поставленную задачу ?
7 май 12, 14:09    [12520074]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Glory
nuhrab
1. Я учусь

И как вы попробовали решить поставленную задачу ?

Это жеж очевидно. Написал на форум.
7 май 12, 14:10    [12520078]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
kDnZP,
Уважаемый, спасибо Вам за Ваш ответ. Решил не так как Вы написали...
7 май 12, 14:16    [12520099]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
alexdr
Member

Откуда:
Сообщений: 253
Ken@t
нахера для 2008R2 , переводить из даты в целочисленное значение, когда есть уже тип данных DATE без времени. ?
Т.е. представить себе ситуацию, когда целочисленный ключ лучше, чем ключ по полю с типом данных типа datetime невозможно? Один из вариантов мне видится при построении хранилища данных. Там это - best practice.
7 май 12, 14:59    [12520321]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
alexdr
Т.е. представить себе ситуацию, когда целочисленный ключ лучше, чем ключ по полю с типом данных типа datetime невозможно? Один из вариантов мне видится при построении хранилища данных. Там это - best practice.

И чем лучше?
DECLARE @v SQL_VARIANT = CAST('20000101' AS DATE)
SELECT  SQL_VARIANT_PROPERTY(@v, 'BaseType') BaseType
       ,SQL_VARIANT_PROPERTY(@v, 'Scale') Scale
       ,SQL_VARIANT_PROPERTY(@v, 'MaxLength') MaxLength
SET @v = CAST(0 AS INT)
SELECT  SQL_VARIANT_PROPERTY(@v, 'BaseType') BaseType
       ,SQL_VARIANT_PROPERTY(@v, 'Scale') Scale
       ,SQL_VARIANT_PROPERTY(@v, 'MaxLength') MaxLength
7 май 12, 15:09    [12520363]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
nuhrab
3. задания не дискутируются, потому что не дискутируются
Укажите место (город/учреждение) где вас там не учат.
7 май 12, 17:22    [12520793]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
nuhrab
Member

Откуда:
Сообщений: 27
Хлопцы, закройте эту тему, уже давно все сделал. "Огромное спасибо" за "продуктивный обсер", но это для русскоязычных форумов нормально :)
Объясните вы мне умники, почему вам так сложно помочь? Мне не нужно было ваше решение, мне было нужно правильное направление что прочитать и где "копать"....
Спасибо за обсер :)
7 май 12, 18:16    [12520954]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
офигеть
Guest
nuhrab,

так kDnZP же написал, как сконвертить.
+ идею донести пытаются, что именно для переделывания поля под ключ достаточно к Date привести,
еще и меньше места займет.
кто обсирал-то???
просто возмущены постановкой задачи
7 май 12, 18:51    [12521068]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
nuhrab, а чё тажело ответить? 12520793
7 май 12, 19:04    [12521093]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
офигеть
кто обсирал-то???
Есть такое у аборигенов:
Если в *опу не целуют, значит туда послали.

Надо обязательно явно указать свою любофъ к собеседнику. Ведь кто не друг, тот кровный враг.
Иначе из всех возможных интерпретаций написанных слов (смысловых предположений), будет однозначно выбираться самый плохой вариант, с серьёзными намерениями.

А вааще да, сложно самому не обосраться, оступившись.

В хаб [я негодую].
7 май 12, 19:22    [12521145]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
alexdr
Member

Откуда:
Сообщений: 253
kDnZP
И чем лучше?

По-видимому, Вы своим скриптом хотели показать, что тип date в байтах занимает меньше место, нежели int. Спасибо, я в курсе. Своим сообщением я хотел лишь сказать, что существуют такие системы отсчета ситуации, когда целочисленный ключ является более предпочтительным, нежели ключ с типом date и т.п. и в этих ситуациях замена ключа на целочисленный является best practice. Я понимаю, что мое сообщение на этом форуме с таким заявлением, возможно, не вполне уместно. Но у участников, мне показалось, появился неподдельный интерес зачем это нужно, иногда сопровождавшийся довольно эмоциональным недоумением.

Почему целочисленный (чаще суррогатный) ключ предпочтительнее в хранилищах данных - разговор долгий. Вместо призывов просто поверить мне на слово, интересующихся могу отослать на соседний форум, посмотреть на рекомендации Кимбалла или взглянуть на статью в msdn
автор
Date and Time Dimension Keys
In contrast to surrogate keys used in other dimension tables, date and time dimension keys should be "smart." A suggested key for a date dimension is of the form "yyyymmdd". This format is easy for users to remember and incorporate into queries. It is also a recommended surrogate key format for fact tables that are partitioned into multiple tables by date.

Говоря коротко, длина типа данных в данном случае далеко не единственный и не самый главный аргумент.
7 май 12, 19:50    [12521241]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата Date  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexdr
и в этих ситуациях замена ключа на целочисленный является best practice.
Байки из склепа. Особенно это бывает когда слышал звон ...
alexdr
разговор долгий.
А главное баянистый на уровне троллизма.
alexdr
могу отослать на соседний форум
Я тоже умею посылать на три буквы. Если вы не поленились указать урл, то хоть на что-то конкретное, а не "в никуда".
alexdr
посмотреть на рекомендации
12 летней давности. Не все вещи вечны.
alexdr
взглянуть на статью в msdn
Вы то хоть и призвали уйти от авторитарных аргументов в итоге всё же из привели. Аргументы и только аргументы. Верное мнение неподтверждённое аргументами ничто, неверное и подавно.
В статье чётко говорится о суррогатных ключах. Date Time, тут не причём совершенно.

Все эти рекомендации для чайников, вредны, особенно когда слепо им следуют и тем более не умеют правильно их интерпретировать. Голова должна быть на плечах.

alexdr
Говоря коротко, длина типа данных в данном случае далеко не единственный и не самый главный аргумент.
Вот именно, чтобы не создавать себе гемора по конверту туда обратно для представления на клиента или связи с другими данными, их желательно хранить в нативном формате.

Так что alexdr, вам придётся выразиться более конкретно и аргументированно.
7 май 12, 20:53    [12521385]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить