Hola a todos, bueno hace raticos que no escribo, pero es por ocupaciones.
En este articulo quiero explicarles como trabajar con fechas en la UI y las edades dese sql. Como sabran la edad es un campo calculado que por norma no se debe guardar en la BD, tambien deben saber que los campos datetime y smalldatetime se usan para guardar fechas, pero que pasa si no quiero guardar la hora, ya que estos campos la guardan automaticamente y precisamente eso es lo que el cliente no quiere ver en el formulario (la hora).
Usarenos a Northwind. Asi queda el formulario si hago un select normalito.
Para arreglar esto usamos la funcion CONVERT de sql
1: SELECT LastName, FirstName, CONVERT(varchar(11), BirthDate, 103) AS BirthDate
2: FROM Employees
Algunos se preguntaran por que 103, bueno por que este es el codigo del convert que me devuelve la fecha en formato dd/mm/aa. Para mas informacion revicen el link.
http://technet.microsoft.com/es-es/library/ms187928.aspx
Resuelto este problema pasamos al de la edad.
1: CASE WHEN MONTH(BirthDate) > MONTH(getdate()) THEN (YEAR(getdate())
2: - YEAR(BirthDate) - 1) WHEN MONTH(getdate()) = MONTH(BirthDate)
3: AND DAY(BirthDate) > DAY(GETDATE()) THEN YEAR(GETDATE()) - YEAR(BirthDate)
4: - 1 ELSE YEAR(GETDATE()) - YEAR(BirthDate) END AS Edad
Como veran la edad la calcule tomando en cuenta los dias y meses del año actual.
Bueno, espero les ayude.
S@ludos.
Romny
para SQL 2008, por fin se tendran los tipos de datos Date, y Time separados: http://geeks.ms/blogs/ozonicco/archive/2007/11/04/sql-server-2008-date-time-datetime2-datetimeoffset-a-la-vista.aspx.
Saludos,
gracias por tu ayuda me fue de gran utilidad
Muchas Gracias, llevaba días buscándolo
Excelente aportacion.
Agradesco mucho tu informacion.