Хранить только месяц и год в SQL Server 2008? - PullRequest
9 голосов
/ 21 октября 2011

Можно ли сохранить месяц / год в SQL Server 2008 с обычной датой-временем?Мне не нужна метка времени, и в столбце будут храниться уникальные комбинации год / год (т. Е. 10-11, 11-11, 12-11 и т. Д.).

Есть рекомендации?

Ответы [ 4 ]

14 голосов
/ 21 октября 2011

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

  • используйте поле даты, но всегда сохраняйте в нем первый день месяца в полночь;затем всегда настраиваемое форматирование поля даты для отображения
  • , добавление целых полей года и месяца и заполнение их путем разделения даты
  • , добавление целого поля, в котором вы кодируете его как год * 100 + месяцкакая-то другая полезная схема
2 голосов
/ 21 октября 2011

Sql Server будет хранить данные даты и времени в полном объеме (год-месяц-день-час: min: sec.milliSec) независимо от того, что.

Когда вы сохраняете свои даты, вы можете сделать день 1-го числа месяца.Просто форматируйте даты, как вы хотите, когда вы делаете ваши запросы.

http://www.sql -server-helper.com / tips / date-format.aspx

1 голос
/ 30 августа 2012

Начиная с SQLServer 2008 и далее:

Сохраните как столбец Date и добавьте следующее проверочное ограничение, чтобы убедиться, что значение всегда является первым месяца:

datepart (месяц, MyDate) <> datepart (месяц, dateadd (день, -1, MyDate))

1 голос
/ 21 октября 2011

Вы не можете хранить год и месяц только в столбце DateTime.Ну, то, что вы можете сделать, это по умолчанию остальные значения.то есть: 2011.10.1.1, 2011.11.1.1 вот так.

Или вы можете сохранить его как строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...