2011-08-09 21 views
16

Tengo un campo que cuando algo se inserta quiero que obtenga la Fecha actual & Hora e insertar esto en la base de datos. ¿Hay alguna forma de obtener la fecha & y configurarla como valor predeterminado?¿Marca de tiempo de fecha predeterminada del servidor SQL?

Actualmente el valor predeterminado es: (getdate()) Que establece solo la fecha. ¿Cómo también configuro el tiempo?

+0

Debe especificar qué implementación de SQL usa ... – JNK

+1

@JNK: ¿ha creado una macro para esto también? – VoodooChild

+1

@voodoo todavía no pero estoy cerca – JNK

Respuesta

26

GETDATE() es una fecha y hora en SQL Server.

Ejecute SELECT GETDATE() para verificar esto.

¿Cuál es el tipo de datos de su campo? Si es DATE, entonces no tendrá valores de tiempo también.

+1

+1: ¡GetDate también recibe la marca de tiempo! – VoodooChild

+0

¿Qué sucede si no desea utilizar la hora actual? – Amicable

+0

La pregunta es sobre devolver la fecha y hora actual. ¿Qué quieres exactamente/ – JNK

2

SYSDATETIME() obtendrán la fecha y hora actuales.

Asegúrese de que el tipo de datos de la columna sea datetime, y no solo date o no será capaz de mantener una fecha y hora.

0

La mayoría de las implementaciones SQL (motores) tienen la función CURRENT_TIMESTAMP.

4

Una forma fácil es dar al campo de una restricción predeterminada:

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

Una desventaja de este método es que se puede sobrescribir el valor especificando que en una cláusula insert.

3

Personalmente, me gustaría usar GETUTCDATE() en cambio GETDATE() para evitar confusiones.

+2

Yo recomendaría eso tampoco. Es muy difícil deshacerse del tiempo local si lo usas. –

Cuestiones relacionadas