none
Tomar la hora actual para un campo RRS feed

  • Pregunta

  • Hola amigos. Quisiera que uno de los campos de la tabla cogiera la hora actual de forma automática al meter los datos de los registros. Estoy utilizando la siguiente instrucción pero no funciona. Tengo SQL SERVER 2016 developer edition. ¿Alguna idea?

    "CREATE TABLE FECHAS_VENTAS( DISCO_COMPACTO VARCHAR(60),FECHA_VENTA DATETIME DEFAULT CURRENT_TIMESTAMP );"

    Gracias de antemano.

    Un saludo


    Carmen

    viernes, 16 de septiembre de 2016 10:00

Respuestas

  • Estoy utilizando la siguiente instrucción pero no funciona.

    Sí funciona. Acabo de probarla con las siguientes líneas (ejecutadas desde SSMS) y genera correctamente el datetime al insertar un registro:

    CREATE TABLE FECHAS_VENTAS( DISCO_COMPACTO VARCHAR(60),FECHA_VENTA DATETIME DEFAULT CURRENT_TIMESTAMP );
    
    INSERT FECHAS_VENTAS (DISCO_COMPACTO) VALUES ('abcd')
    
    SELECT * FROM FECHAS_VENTAS

    • Marcado como respuesta Nenufar martes, 20 de septiembre de 2016 6:04
    viernes, 16 de septiembre de 2016 19:32

Todas las respuestas

  • Hola, ¿ que quieres decir con "no funciona", no te crea la tabla ?. Supongo que el error sea cuando insertas, debe de ser por ejemplo INSERT INTO FECHAS_VENTAS VALUES ('DISCO COMPACTO',default), es así en SQL2008R2.

    Saludos

    viernes, 16 de septiembre de 2016 11:41
  • Nenufar,

    Para obtener la hora del sistema te basta con castear un valor de tipo datetime a time. Sin embargo la columna a la que deseas establecer el valor por defecto se llama 'FECHA_VENTA' por lo que entiendo debería tener la fecha y el tiempo:

    /*Obtener fecha y tiempo*/
    ...,FECHA_VENTA datetime NOT NULL CONSTRAINT [DF_FechaVenta] DEFAULT GETDATE()
    
    /*Obtener sólo el tiempo*/
    ...,FECHA_VENTA time(0) NOT NULL CONSTRAINT [DF_FechaVenta] DEFAULT CONVERT(time(0), GETDATE())


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 16 de septiembre de 2016 12:41
  • Estoy utilizando la siguiente instrucción pero no funciona.

    Sí funciona. Acabo de probarla con las siguientes líneas (ejecutadas desde SSMS) y genera correctamente el datetime al insertar un registro:

    CREATE TABLE FECHAS_VENTAS( DISCO_COMPACTO VARCHAR(60),FECHA_VENTA DATETIME DEFAULT CURRENT_TIMESTAMP );
    
    INSERT FECHAS_VENTAS (DISCO_COMPACTO) VALUES ('abcd')
    
    SELECT * FROM FECHAS_VENTAS

    • Marcado como respuesta Nenufar martes, 20 de septiembre de 2016 6:04
    viernes, 16 de septiembre de 2016 19:32