sql: obtener fecha del servidor

19/05/2010 - 16:03 por Paul | Informe spam
Saludos.
Tengo una tabla con varios campos entre ellos estan:
user | fechaLocal | fechaServer

En fecha local lo que hago es obtener la fecha y hora actual de la PC que se
esta ejecutando mi programa y almacenarlo en el campo fechaLocal, ahora al
ingresar un dato, quisiera que automaticamente SQL ingrese la hora y la fecha
actual del servidor donde esta alojado el SQL o mi base de dato.
Es posible hacer esto tanto en SQL como en access2007?

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
19/05/2010 - 20:55 | Informe spam
"Paul" wrote in message
news:
Tengo una tabla con varios campos entre ellos estan:
user | fechaLocal | fechaServer
En fecha local lo que hago es obtener la fecha y hora actual de la PC que
se
esta ejecutando mi programa y almacenarlo en el campo fechaLocal, ahora al
ingresar un dato, quisiera que automaticamente SQL ingrese la hora y la
fecha
actual del servidor donde esta alojado el SQL o mi base de dato.
Es posible hacer esto tanto en SQL como en access2007?



En SQL Server puedes hacerlo con una llamada al método GetDate(). Lo
puedes poner directamente en la "Insert":

string SQL = "Insert Mitabla(user, fechaLocal, fehaServer) VALUES (@usuario,
@fechaLocal, GetDate())";

Y si no te quieres molestar en escribirlo, puedes ponerlo como DEFAULT en
la creación de la tabla:

CREATE TABLE MiTabla (
User Varchar(10),
FechaLocal DateTime,
FechaServer DateTime CONSTRAINT Df_Fecha DEFAULT GetDate()
)
GO

Después de eso, puedes insertar datos omitiendo ese campo, y se
inicializará con la fecha del servidor:

string SQL = "Insert Mitabla(user, fechaLocal,) VALUES (@usuario,
@fechaLocal)";
Respuesta Responder a este mensaje
#2 Paul
19/05/2010 - 21:43 | Informe spam
Hola Alberto.
Gracias por el dato, es muy ilustrativo... se podra hacer lo mismo en
access2007?

Me gustaria darle un formato a GetDate. Sera posible poder recuperarlo en
una variable string?
Respuesta Responder a este mensaje
#3 Alberto Poblacion
20/05/2010 - 07:51 | Informe spam
"Paul" wrote in message
news:
Gracias por el dato, es muy ilustrativo... se podra hacer lo mismo en
access2007?



No tiene mucho sentido. Estás grabando en tu tabla la fecha "cliente" y
la fecha "servidor", que en SQL Server pueden ser distintas. Pero en Access
no existe "servidor". El motor de Access consiste sólo en una serie de DLLs
(el "JET Engine") que se ejecutan en el propio equipo cliente (aunque el
fichero .mdb esté compartido en una unidad de red). Por tanto, la fecha que
ve el Access es la misma fecha que ve el programa cliente, ya que ambos
ruedan siempre sobre el equipo cliente.

Me gustaria darle un formato a GetDate. Sera posible poder recuperarlo en
una variable string?



Sí, puedes usar un CONVERT, por ejemplo:

CONVERT(VARCHAR(10), GETDATE(), 103) te convierte al formato "dd/mm/yyyy".
Cambiando el 103 por otros valores tienes todos los formatos habituales, por
ejemplo el 112 es el "ISO" (yymmdd). En los BOL viene toda la lista de
formatos.

Sin embargo, ten presente que esto te devuelve un VARCHAR, por lo que sólo
te resulta útil si vas a guardar la fecha en un campo VARCHAR. Si el campo
es DATETIME, no conserva ningún formato, sino que guarda un valor binario
que equivale a la fecha guardada.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida