fecha con campo en segundos a partir del 1/1/1601

09/11/2004 - 20:12 por juan carlos angelucci | Informe spam
Gente estoy trabajando con un equipo de telefonia ip que guarda los datos de
inicio y fin de las llamadas en segundos contando desde el 1/1/1601, como el
programa no se puede modificar estoy buscando la forma de armar un select
que realize la cuenta directamente.

pense en:

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

pero no funciona da el siguiente error

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

aparentemente el problema esta en que 1601 no es un año valido para el
datetime, pero no encuentro forma de resolver esto sin tener que hacer algo
mas complejo.

alguna sugerencia?

Preguntas similare

Leer las respuestas

#6 Luis Ramírez
09/11/2004 - 22:44 | Informe spam
tengoi una aplicacion VoIP q guarda los datos asi...

casi siempre hago lo sig

Select dateadd(s, ConnecTime, '1601/1/1') as datCDR from CDR

y listo

nunca he tenido q usar el CAST..

Saludos

"juan carlos angelucci" wrote in message
news:%
Gente estoy trabajando con un equipo de telefonia ip que guarda los datos


de
inicio y fin de las llamadas en segundos contando desde el 1/1/1601, como


el
programa no se puede modificar estoy buscando la forma de armar un select
que realize la cuenta directamente.

pense en:

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

pero no funciona da el siguiente error

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

aparentemente el problema esta en que 1601 no es un año valido para el
datetime, pero no encuentro forma de resolver esto sin tener que hacer


algo
mas complejo.

alguna sugerencia?


Respuesta Responder a este mensaje
#7 Luis Ramírez
09/11/2004 - 22:52 | Informe spam
ah por cierto..


normalmente es desde 1/1/1970



"juan carlos angelucci" wrote in message
news:%
Gente estoy trabajando con un equipo de telefonia ip que guarda los datos


de
inicio y fin de las llamadas en segundos contando desde el 1/1/1601, como


el
programa no se puede modificar estoy buscando la forma de armar un select
que realize la cuenta directamente.

pense en:

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

pero no funciona da el siguiente error

Select dateadd(second, cast(ConnectTime as decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

aparentemente el problema esta en que 1601 no es un año valido para el
datetime, pero no encuentro forma de resolver esto sin tener que hacer


algo
mas complejo.

alguna sugerencia?


Respuesta Responder a este mensaje
#8 juan carlos angelucci
10/11/2004 - 13:25 | Informe spam
se complica con los años biciestos por eso busco una solucion mas directa
sin modificar el soft.

Gracias!


"ulises" wrote in message
news:4c2a01c4c69d$1c152750$
Hum, podrias usar la fecha 1901-01-01 en lugar de
1601-01-01 y luego sumarle los segundos que hay en los 300
años faltantes.

Saludos,
Ulises

y hay alguna posibilidad para resolver este tema desde el


sql y no desde una
app?


"juan carlos angelucci" wrote in


message
news:%
Gente estoy trabajando con un equipo de telefonia ip que




guarda los datos
de
inicio y fin de las llamadas en segundos contando desde




el 1/1/1601, como
el
programa no se puede modificar estoy buscando la forma




de armar un select
que realize la cuenta directamente.

pense en:

Select dateadd(second, cast(ConnectTime as




decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

pero no funciona da el siguiente error

Select dateadd(second, cast(ConnectTime as




decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

aparentemente el problema esta en que 1601 no es un año




valido para el
datetime, pero no encuentro forma de resolver esto sin




tener que hacer
algo
mas complejo.

alguna sugerencia?






.

Respuesta Responder a este mensaje
#9 Salvador Ramos
10/11/2004 - 14:00 | Informe spam
Podrías hacer un pequeño programita, quizás una sola línea, o con excel, que
calcule los segundos desde el 1/1/1601 hasta el 1/1/1900 a las 0:00. Lo
ejecutas una sola vez y el valor que te dé, lo apuntas y lo sumas en tu
código t-sql.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"juan carlos angelucci" escribió en el mensaje
news:
se complica con los años biciestos por eso busco una solucion mas directa
sin modificar el soft.

Gracias!


"ulises" wrote in message
news:4c2a01c4c69d$1c152750$
Hum, podrias usar la fecha 1901-01-01 en lugar de
1601-01-01 y luego sumarle los segundos que hay en los 300
años faltantes.

Saludos,
Ulises

y hay alguna posibilidad para resolver este tema desde el


sql y no desde una
app?


"juan carlos angelucci" wrote in


message
news:%
Gente estoy trabajando con un equipo de telefonia ip que




guarda los datos
de
inicio y fin de las llamadas en segundos contando desde




el 1/1/1601, como
el
programa no se puede modificar estoy buscando la forma




de armar un select
que realize la cuenta directamente.

pense en:

Select dateadd(second, cast(ConnectTime as




decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

pero no funciona da el siguiente error

Select dateadd(second, cast(ConnectTime as




decimal),cast('1/1/1601' as
datetime)) as datecdr from basecdr

aparentemente el problema esta en que 1601 no es un año




valido para el
datetime, pero no encuentro forma de resolver esto sin




tener que hacer
algo
mas complejo.

alguna sugerencia?






.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida