2011-08-09 8 views
16

У меня есть поле, которое когда что-то вставлено Я хочу, чтобы он получил текущую дату & Время и вставьте это в базу данных. Есть ли способ получить дату & времени и установить ее как значение по умолчанию?Дата по умолчанию для даты SQL Server?

В настоящее время значением по умолчанию является: (getdate()), который устанавливает только дату. Как установить время?

+0

Вам нужно указать, какую реализацию SQL вы используете ... – JNK

+1

@JNK: вы создали макрос для этого? – VoodooChild

+1

@voodoo еще нет, но я близко – JNK

ответ

26

GETDATE() - это дата и время в SQL Server.

Запустить SELECT GETDATE(), чтобы это проверить.

Каков тип вашего поля? Если это DATE, то оно также не будет содержать значения времени.

+1

+1: GetDate также получает метку времени! – VoodooChild

+0

Что делать, если вы не хотите использовать текущее время? – Amicable

+0

Вопрос о возврате текущей даты и времени. Что вы хотите точно/ – JNK

2

SYSDATETIME() получит текущую дату и время.

Убедитесь, что тип данных столбца: datetime, а не только date или он не сможет хранить дату и время.

0

Большинство реализаций (двигателей) SQL имеют функцию CURRENT_TIMESTAMP.

4

Один простой способ, чтобы дать поле ограничение по умолчанию:

create table YourTable 
    (
    ... other columns ... 
    CreateDt datetime default getdate(), 
    ... other columns ... 
    ) 

Недостатком этого метода является то, что вы можете перезаписать значение, указав его в insert пункте.

3

Лично я хотел бы использовать GETUTCDATE() вместо GETDATE(), чтобы избежать путаницы.

+2

Я бы тоже порекомендовал это. Очень сложно избавиться от локального времени, если вы его используете. –

Смежные вопросы