Eu tenho uma tabela que coleta formulários enviados em nosso site, mas, por algum motivo, quando eles criaram a tabela, eles não colocaram um carimbo de data / hora na tabela. Quero que ele digite a data e a hora exatas em que o registro foi inserido.
Eu sei que está lá em algum lugar, mas não consigo encontrar como definir o valor padrão (como no Access, você usa getNow()
ou Now()
), mas não sei onde colocá-lo.
sql-server
datetime
Stephmoreland
fonte
fonte
Respostas:
Para modificar uma coluna existente em uma tabela existente:
fonte
TheQ
A resposta de @steph- pressupõe que você esteja alterando uma coluna existente que não acredito que seja o caso? Veja minha resposta para o código para adicionar uma nova coluna com essa restrição padrão.GETUTCDATE()
vez deGETDATE()
Isso também pode ser feito através da GUI do SSMS.
(getdate())
no Valor Padrão ou Binding campo como na figura abaixofonte
dateadd(minute, 10, GetDate())
ver se isso funciona.Na tabela do SQL Server, especifique o valor padrão dessa coluna
CURRENT_TIMESTAMP
. O tipo de dados dessa coluna pode ser datetime ou datetime2.por exemplo
fonte
CURRENT_TIMESTAMP
retorna umdatetime
valor no fuso horário local do computador. Deve ser evitado. Em vez disso, use oSYSUTCDATETIME
que retorna adatetime2
no UTC.Enquanto a resposta marcada estiver correta com:
Você sempre deve estar ciente dos fusos horários ao adicionar valores de data e hora padrão em uma coluna.
Digamos, por exemplo, que esse
datetime
valor seja projetado para indicar quando um membro ingressou em um site e você deseja que ele seja exibido novamente para o usuário.GETDATE()
Ele fornecerá tempo ao servidor para mostrar discrepâncias se o usuário estiver em um local diferente para o servidor.Se você espera lidar com usuários internacionais, é melhor em alguns casos usar GETUTCDATE () , que:
Ao recuperar os valores, o aplicativo / site front-end deve transformar esse valor do horário UTC no local / cultura do usuário que o solicita.
fonte
Não permitir nulos na coluna e defina um padrão na coluna de
getdate()
fonte
A sintaxe para isso ao criar uma nova tabela é:
fonte
Isso funciona para mim ...
fonte
Isso também funciona:
Ou:
fonte
Isso funcionou para mim. Estou usando o SQL Developer com Oracle DB:
fonte
Para simplificar o seguimento, resumirei as respostas acima:
Digamos que a tabela se chame Customer , tem 4 colunas / menos ou mais ...
você deseja adicionar uma nova coluna à tabela em que toda vez que houver inserção ... essa coluna manterá um registro do horário em que o evento ocorreu.
Solução:
adicione uma nova coluna, digamos que time compra é a nova coluna na tabela com o tipo de dados datetime .
Em seguida, execute o seguinte alter:
fonte
Digamos que você crie uma tabela de banco de dados para um sistema de registro.
Agora, algumas pessoas se registram.
Então você percebe que precisa de um carimbo de data e hora para quando eles se registraram.
Se esse aplicativo estiver limitado a uma região localizada geograficamente, você poderá usar o horário do servidor local com
GETDATE()
. Caso contrário, você deve considerar a consideração de Tanner para o público global comGETUTCDATE()
o valor padrão.Adicione a coluna com um valor padrão em uma declaração como esta resposta .
Vamos buscar outro registrante e ver como são os dados.
fonte
No SQLPlus, ao criar uma tabela, é como
SQL> criar tabela Teste
SQL> inserir nos valores de Teste (id) (1);
fonte