Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problemas con tipo "DateTime"

Estas en el tema de Problemas con tipo "DateTime" en el foro de SQL Server en Foros del Web. hola a todos! ¿Qué tal estáis? Veréis, estoy desarrollando un sitio web con VS2005 (lenguaje C#) y SQL SErver 2005 y tengo problemas con el ...
  #1 (permalink)  
Antiguo 19/04/2006, 07:40
 
Fecha de Ingreso: marzo-2006
Mensajes: 33
Antigüedad: 18 años, 1 mes
Puntos: 0
Problemas con tipo "DateTime"

hola a todos!
¿Qué tal estáis?
Veréis, estoy desarrollando un sitio web con VS2005 (lenguaje C#) y SQL SErver 2005 y tengo problemas con el tipo DateTime.

cuando estoy usando DataAdapters y DateTable, puedo insertar sin ningún problema en un dataRow un tipo de dato DateTime en la base de datos con el formato dd/mm/yyyy hh:mm:ss. Hasta aquí OK.

El problema viene cuando no estoy utilizando DataAdapters, es decir, estoy utilizando ExecuteNonQuery para insertar una nueva tupla en la base de datos. En este caso, no me deja insertar con el formato dd/mm/yyyy hh:mm:ss, sólo me permite insertarlo en la forma mm/dd/yyyy hh:mm:ss.

¿por qué en un caso si me deja y en otro no cuando el tipo en la base de datos es el mismo (datetime)?

¿Hay alguna forma de especificar en la BD que sólo permita formatos del tipo dd/mm/yyyy hh:mm:ss?

Gracias a todos!
Saludos,
Javier
  #2 (permalink)  
Antiguo 19/04/2006, 09:51
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
jpflorido, asumo que el DataSet y sus DataTables las creaste "arrastrando" las tablas desde la servers view, es así?
Posiblemente, independientemente de como guardes tu los datos en el DataTable ADO.Net sepa que para guardar los datos en las tablas deba guardarlos en el formato mm/dd/yyyy.
En mi experiencia personal, para no tener esos problemas de fechas hago los inserts como 'YYYYMMDD'. Tengo una función que recibe una fecha y retorna el string en el formato que te indico y con eso soluciono el problema.
Ojo! el campo en la base de datos es fecha, no string.
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 19/04/2006, 10:27
 
Fecha de Ingreso: marzo-2006
Mensajes: 33
Antigüedad: 18 años, 1 mes
Puntos: 0
Seb,
Gracias por responder.
Te cuento:

TEngo el siguiente código:
// Crear el DataAdapter : sSel contiene la select que coge todos los campos de //la tabla
da = new SqlDataAdapter(sSel, connectionString);

// Crear el nuevo DataTable
dt = new DataTable();

// Rellenar el DataTable con el contenido del Dataadapter
da.Fill(dt);

Me he saltado algunos pasos, pero básicamente es eso. Me he fijado en la base de datos real y las fechas están almacenadas en formato dd/mm/yyyy cuando utilizado el DataAdapter, es decir, físicamente están como dd/mm/yyyy, cosa que me sorprende.
Así que no sé cómo demonios lo ha podido almacenar así y lo acepta con ese formato, cuando he intentado insertarlo a "pelo" con ese formato y no me deja....

Menuda paranoia.
¿Alguna sugerencia?
Gracias otra vez!
  #4 (permalink)  
Antiguo 19/04/2006, 10:31
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
A mi me pasaba lo mismo jp, el tema es que dificil saber como es que exactamente están almacenados los datos, ya que muchas veces te los muestra según la configuración del cliente.
No te pasa que el Enterprise Manager te los muestra de una forma y el Query Analizer de otra?
Yo por eso es que siempre hago como te mencioné anteriormente, lo guardo como si fuera string en el formato YYYYMMDD, ahí SQL Server entiende y sabe como guardarlo según el formato que tenga seteado.
__________________
saludos
seba
http://sgomez.blogspot.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:29.