Tengo una tabla que recopila formularios enviados desde nuestro sitio web, pero por alguna razón, cuando crearon la tabla, no pusieron una marca de tiempo en la tabla. Quiero que ingrese la fecha y hora exactas en que se ingresó el registro.
Sé que está allí en alguna parte, pero parece que no puedo encontrar cómo establecer el valor predeterminado (como en Access, usas getNow()
o Now()
) pero no sé dónde ponerlo.
sql-server
datetime
Stephmoreland
fuente
fuente
Respuestas:
Para modificar una columna existente en una tabla existente:
fuente
TheQ
La respuesta de @steph - asume que estás alterando una columna existente que no creo que sea el caso. Vea mi respuesta para el código para agregar una nueva columna con esta restricción predeterminada.GETUTCDATE()
lugar deGETDATE()
Esto también se puede hacer a través de la GUI de SSMS.
(getdate())
en Valor predeterminado o vinculante campo como se muestra a continuaciónfuente
dateadd(minute, 10, GetDate())
ver si eso funciona.En esa tabla en SQL Server, especifique el valor predeterminado de esa columna
CURRENT_TIMESTAMP
. El tipo de datos de esa columna puede ser datetime o datetime2.p.ej
fuente
CURRENT_TIMESTAMP
devuelve undatetime
valor en la zona horaria local de la computadora. Debe ser evitado. En su lugar, useSYSUTCDATETIME
que devuelve undatetime2
en UTC.Si bien la respuesta marcada es correcta con:
Siempre debe tener en cuenta las zonas horarias al agregar valores predeterminados de fecha y hora en una columna.
Digamos, por ejemplo, que este
datetime
valor está diseñado para indicar cuándo un miembro se unió a un sitio web y desea que se muestre nuevamente al usuario,GETDATE()
le dará tiempo al servidor, por lo que podría mostrar discrepancias si el usuario se encuentra en una ubicación diferente al servidor.Si espera tratar con usuarios internacionales, es mejor en algunos casos usar GETUTCDATE () , que:
Al recuperar los valores, la aplicación / sitio web front-end debe transformar este valor desde la hora UTC a la configuración regional / cultura del usuario que lo solicita.
fuente
No permitir nulos en la columna y establecer un valor predeterminado en la columna de
getdate()
fuente
La sintaxis para esto al crear una nueva tabla es:
fuente
Esto funciona para mi ...
fuente
Esto también funciona:
O:
fuente
Esto funcionó para mí. Estoy usando SQL Developer con Oracle DB:
fuente
Para que sea más fácil de seguir, resumiré las respuestas anteriores:
Digamos que la tabla se llama Cliente , tiene 4 columnas / menos o más ...
desea agregar una nueva columna a la tabla donde cada vez que hay una inserción ... esa columna mantiene un registro de la hora en que ocurrió el evento.
Solución:
agregue una nueva columna, digamos que timepurchase es la nueva columna, a la tabla con el tipo de datos datetime .
Luego ejecute el siguiente alter:
fuente
Supongamos que crea una tabla de base de datos para un sistema de registro.
Ahora un par de personas se registran.
Entonces te das cuenta de que necesitas una marca de tiempo para cuando se registraron.
Si esta aplicación se limita a una región geográficamente localizada, puede usar la hora del servidor local con
GETDATE()
. De lo contrario, debe prestar atención a la consideración de Tanner para la audiencia global conGETUTCDATE()
el valor predeterminado.Agregue la columna con un valor predeterminado en una declaración como esta respuesta .
Consigamos otro registrante y veamos cómo se ven los datos.
fuente
En SQLPlus al crear una tabla es como
SQL> crear tabla de prueba
SQL> insertar en los valores de prueba (id) (1);
fuente