Хранение даты Только в SQL Server 2005

Трудно подвести итог в ТАК ответ, но я попробую. Одна из проблем разработки объектов балансирует взгляды с полной точки зрения с размышлением с точки зрения отдельного объекта. Вам нужна полная перспектива для завершения вычисления, но Вам нужна перспектива отдельного объекта для эффективного подразделения логики и данных.

Сохранение этого равновесия состоит в том, где карты CRC входят. Когда они находятся там на таблице, Вы добираетесь для рассмотрения вычисления в целом. Когда Вы берете единственную карту, тем не менее, Вы физически, кинестетически поощряетесь взять точку зрения того одного объекта - у меня есть этот маленький кусочек этого вычисления, чтобы сделать с ограниченными ресурсами, как я собираюсь выполнить его?

Со временем, способность одновременно содержать обе перспективы, кажется, впитывается в мозг. Все меньше и меньше записан на картах. Тогда карты являются пробелом. Через некоторое время люди просто указывают туда, где карта была бы то, если они потрудятся брать пустого от стека. В конечном счете люди обладают преимуществами интеллектуального стиля, не нуждаясь в картах вообще. Когда разговор с кем-то, кто не освоил баланс, вытащив карты реалов, может быть полезной коммуникацией, помогают, все же.

самая большая слабость, которую я нахожу с картами, является отсутствием обратной связи. Можно одурачить себя о том, как код собирается сложиться. Я предложил бы использовать карты только, пока интересный вопрос не подходит, поворот к тестам/коду для подтверждения, и затем продолжите разрабатывать.

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

5
задан Rob 21 June 2011 в 16:03
поделиться

7 ответов

4
ответ дан 18 December 2019 в 10:47
поделиться

Тип данных DateTime ВСЕГДА хранит дату И время. Таким образом, вам остается использовать CONVERT / CAST для получения определенного формата или использовать методы YEAR (), MONTH () или DAY () для выделения деталей даты в зависимости от ваших потребностей.

7
ответ дан 18 December 2019 в 10:47
поделиться

Самое простое решение - просто не предоставлять пользователю временную часть. Однако, если вам действительно нужно убедиться, что сохранена только часть даты, вы можете принудительно установить часть времени на полночь / полдень / любое постоянное время перед сохранением значения.

2
ответ дан 18 December 2019 в 10:47
поделиться

Встроенный тип данных DATETIME хранит как дату, так и время. Если вы укажете только часть даты, то время будет 12:00:00 или что-то в этом роде.

Забавная история: однажды я видел базу данных, в которой были поля даты и времени, в которых оба хранились дата и время , но каждый использовался только для половины данных. Некоторые люди делают глупости :)

1
ответ дан 18 December 2019 в 10:47
поделиться

Если вы приведете DateTime к Int и обратно, вы получите DateTime с 00:00 в качестве временной части. Таким образом, вы можете сохранить все свои даты как целые числа в базе данных.

1
ответ дан 18 December 2019 в 10:47
поделиться

Either add a computed column:

dateonly AS CONVERT(DATETIME, CONVERT(CHAR(8), date_with_time, 112), 112)

or truncate your date right on insert:

INSERT
INTO     mytable (dateonly)
VALUES   CONVERT(DATETIME, CONVERT(CHAR(8), GETDATE(), 112), 112)

, making a CHECK on your dateonly column to raise an error when someone tries to insert a non-truncated value:

CHECK (dateonly = CONVERT(DATETIME, CONVERT(CHAR(8), date_with_time, 112), 112))
1
ответ дан 18 December 2019 в 10:47
поделиться

Just represent the date as a yyyMMdd integer value.

0
ответ дан 18 December 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: