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

conversion de fechas en SQL

Estas en el tema de conversion de fechas en SQL en el foro de SQL Server en Foros del Web. hola, mi problema es que no puedo realizar las comparaciones correctas, por que sql compara las fechas con formato aaaa/mm/dd y yo le doy fecha ...
  #1 (permalink)  
Antiguo 04/11/2008, 12:20
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
conversion de fechas en SQL

hola, mi problema es que no puedo realizar las comparaciones correctas, por que sql compara las fechas con formato aaaa/mm/dd y yo le doy fecha en formato dd/mm/aaaa, con que funcion convierto la fecha es SQL, por que estoy trabajando con vbscript en asp, pero no consigo hacer bien la consulta, es para un select de productos que caducan o productos vencidos, gracias, saludos
  #2 (permalink)  
Antiguo 04/11/2008, 12:39
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: conversion de fechas en SQL

A SQL mandale las fechas en el formato YYYYMMDD(ANSI) y no tendrás problemas.
  #3 (permalink)  
Antiguo 04/11/2008, 22:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: conversion de fechas en SQL

Es correcto, debes enviar en formato ANSI tus fechas YYYYMMDD hh:mm:ss, nnn
  #4 (permalink)  
Antiguo 05/11/2008, 09:26
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

hola, ok, entiendo que debo mandarlos en ese formato, pero como convierto las fechas para que tengan ese formato, gracias
  #5 (permalink)  
Antiguo 05/11/2008, 09:35
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

encontre esta funcion, parece que es lo que buscaba, lo pruebo y aviso, saludos
FORMAT(Now(),'YYYY-MM-DD')
  #6 (permalink)  
Antiguo 05/11/2008, 09:39
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

buenas noticias, lo solucione, gracias totales, ya me siento que se algo
saludos
  #7 (permalink)  
Antiguo 05/11/2008, 09:40
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: conversion de fechas en SQL

vamos que podemos!!
  #8 (permalink)  
Antiguo 05/11/2008, 10:35
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

bueno, tengo la conversion de fechas, pero parece que el problema es otro,
tengo este codigo
sql="SELECT * FROM certificados where Fechacaducidad > FORMAT("& DateAdd("yyyy",1,date) & ",'YYYY-MM-DD')"
en visual script

y lo ejecuto de la siguiente manera

Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open sql, Conn, 1, 1

este codigo si me anda, pero me da fechas que son menores que la fecha de caducidad, en relaidad me da todos los productos, cuando cambio el operador por = o <, me da el error mas famoso y aburrido,

An error occurred on the server when processing the URL. Please contact the system administrator.

If you are the system administrator please click here to find out more about this error.

asi que de nuevo estoy viendo que hacer, ayuda, comentarios, preguntas... todo sera muy agradecido, saludos
  #9 (permalink)  
Antiguo 05/11/2008, 10:50
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

lo solucione amigos, esto le puede ser util a varios
le puse los ##
y quedo asi

sql="SELECT * FROM certificados where Fechacaducidad < FORMAT(#"& DateAdd("yyyy",1,date) & "#,'YYYY-MM-DD')"

y vuala!!!
anda
saludos
felices dias
  #10 (permalink)  
Antiguo 05/11/2008, 10:51
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

ah y por cierto
  #11 (permalink)  
Antiguo 05/11/2008, 11:12
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

no me hace bien las comparaciones, probe un nuevo codigo con otro operador, pero no me da resultados extraños

el codigo es

sql="SELECT * FROM certificados where Fechacaducidad BETWEEN FORMAT(#"& DateAdd("d",-15,date) & "#,'YYYY-MM-DD') AND FORMAT(#"& DateAdd("d",0,date) & "#,'YYYY-MM-DD')"

pero me da un producto que tiene fecha de caducidad 28/09/2008

extraño, voy a analizarlo en detalle, saludos

si tienen idea donde puedo ver temas sobre fechas, me avisan, saludos

:-|
  #12 (permalink)  
Antiguo 05/11/2008, 11:44
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: conversion de fechas en SQL

caramba, descubri el problema, pero aun no la solucion, los comandos de VBscript me dan las fechas del modo MM/DD/YYYY y el sql lo interpreta como si fuera DD/MM/YYYY y lo ordena bien el comando FORMAT, pero ya tiene cambiado el orden entre dias y meses y me da cualquier cosa, creo que una alternativa es armar la consulta con la funcion now() de sql, pero tengo que hacerle unos agregados con la funcion DateAdd de VBscript, asi que no se me ocurre nada, ayuda, comentarios, todo sera bienvenido, saludos
  #13 (permalink)  
Antiguo 10/11/2008, 07:16
Avatar de moishefire  
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: conversion de fechas en SQL

bueno, por fin lo hice andar, encontre la solucion con un amigo, dejo el codigo que explica bien como lo hicimos

fecha=DateAdd("d",-7,date)
dia=day(fecha)
mes=month(fecha)
anio=year(fecha)
vSQL="SELECT * FROM certificados where Fechacaducidad > #" & anio & "/" & mes & "/" & anio

saludos

espero que sirva
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:10.