Минимум значения по умолчанию TSQL DateTime

21
задан user72491 5 March 2009 в 16:48
поделиться

5 ответов

Насколько я знаю, что никакая функция не существует для возврата этого, необходимо будет трудно установить его.

Попытка бросить от значений такой как 0 для получения минимальной даты примет значение по умолчанию до 01.01.1900.

, Как предложено ранее лучше всего оставленный установленный в NULL (и используют ISNULL при чтении, если Вам нужно к), или если Вы волнуетесь по поводу установки его правильно, Вы могли бы даже установить триггер на таблице для назначения измененной даты на редактированиях.

, Если у Вас есть свое сердце при получении минимальной возможной даты тогда:

create table atable
(
  atableID int IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Modified datetime DEFAULT '1753-01-01'
)

40
ответ дан Chris 29 November 2019 в 03:31
поделиться

"Возможно, я должен уехать, это пустой"

не использует магические числа - это - плохая практика - если у Вас нет отпуска значения этим пустой

Иначе, если Вы действительно хотите дату по умолчанию - используют один из других методов, отправленных для назначения даты по умолчанию

10
ответ дан DJ. 29 November 2019 в 03:31
поделиться

Я думаю, что Ваша единственная опция здесь является константой. После этих слов - не используют, это - придерживается пустых указателей вместо поддельных дат.

create table atable
(
  atableID int IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Modified datetime DEFAULT '1/1/1753'
)
0
ответ дан Scott Ivey 29 November 2019 в 03:31
поделиться

Я думаю, что это работало бы...

create table atable
(
  atableID int IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Modified datetime DEFAULT ((0))
)

Редактирование: Это неправильно... Минимальное Значение SQL DateTime является 01.01.1753. Мое решение обеспечивает дату и время = 01.01.1900 0:00:00. Другие ответы имеют корректную минимальную дату...

0
ответ дан Jason Punyon 29 November 2019 в 03:31
поделиться

Если вы не создаете БД для отслеживания исторического времени более века назад, использование

Modified datetime DEFAULT ((0)) 

совершенно безопасно и надежно и позволяет выполнять более элегантные запросы, чем «1753-01-01», и более эффективные запросы, чем NULL .

Однако, поскольку first Modified datetime - это время, когда запись была вставлена, вы можете использовать:

Modified datetime NOT NULL DEFAULT (GETUTCDATE())

, что позволяет избежать всей проблемы и делает ваши вставки проще и безопаснее - как и в случае с вами. t вставьте его вообще, и SQL сделает всю работу по дому :-)

С этим вы все еще можете иметь элегантные и быстрые запросы, используя 0 как практический минимум, поскольку он всегда будет ниже, чем любой сгенерированный вставкой GETUTCDATE () .

5
ответ дан 29 November 2019 в 03:31
поделиться
Другие вопросы по тегам:

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