SQL - Hablando sobre FECHAS

 
Vista:

Hablando sobre FECHAS

Publicado por Gonzalo Solano C. (148 intervenciones) el 22/10/2001 09:01:16
Últimamente vi que muchas de las preguntas del foro están dirigidas al tratamiento de fechas, espero que el siguiente párrafo pueda aclarar las dudas del manejo de las fechas dentro de SQL Server. Primeramente que contiene o mejor dicho que nos devuelve una variable de tipo datetime, según el siguiente ejemplo:
DECLARE @fecha datetime, @hora datetime
SELECT @fecha = 'oct 22 2001', @hora = '13:30'
SELECT @fecha, @hora
(Resultado)
2001-10-22 00:00:00.000 1900-01-01 13:30:00.000
Podemos observar que cada variable tiene dos partes [Fecha,Hora], cuando a una variable de tipo datetime se asigna solamente la fecha, asume una hora de 00:00:00 y si solo se asigna la hora, asume un valor para la fecha de 1900-01-01, además el formato que se muestra es YYYY-MM-DD HH:MM:SS ...
Pero es este el formato como almacena SQL Server?? Pues no este formato que supuestamente devuelve SQL Server en realidad es establecido por la herramienta cliente, me explico si estas mismas instrucciones se ejecutan con la herramienta isql obtendran el siguiente resultado:
-------------------- --------------------
22-10-2001 0:00 1-1-1900 13:30
ambas instrucciones ejecutadas en el mismo servidor devuelven formato diferente, esto debido a que el Analizador de consultas es una herramienta basada en ODBC y ISQL es una herramienta basada en dblibrary. Si ejecutan la siguiente instrucción en Visual Basic utilizando ADO 2.6
SELECT GetDate()
(obtendran como resultado)
21/10/2001 01:28:20 a.m.
Cuando se ejecuta la instrucción CONVERT, en realidad estamos convirtiendo la fecha a un string con formato. Para ello se puede ejecutar las siguientes instrucciones
SELECT CONVERT (CHAR(20), Get
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder