Como calcular datetime con milisegundl

326 views
Skip to first unread message

Marcelo Barberis

unread,
Feb 16, 2019, 8:58:14 PM2/16/19
to publicesvfoxpro
Hola les consulto hay un nuevo sistema de facturacion donde se pide generar la fecha, la hora y los milisegundo, mi consulta en la configuracion de mi campo como lo debo hacer, se me ocurre tipo varchar pero q longitud seria, y alguien sabe o ha trabajo con este tipo de dato y como se logra hacer la fecha, hora y milisegundo.
Desde ya gracias por alguna idea

Dsan

unread,
Feb 16, 2019, 10:21:18 PM2/16/19
to publice...@googlegroups.com

Y porque no mejor usar ?Second()

Slds
Dsanchez


Rodolfo Ortiz González

unread,
Feb 16, 2019, 10:42:48 PM2/16/19
to publice...@googlegroups.com
Yo lo uso con un campo datetime, aquí en México es para la facturación electrónica.

Me da, fecha, hora, minuto y segundo.


Saludos!

Marcelo Barberis

unread,
Feb 18, 2019, 7:22:39 AM2/18/19
to publicesvfoxpro
yo debo tener la fecha, la hora, los minutos, los segundos y ademas los milisegundos en si es mas amplio que datetime() a no ser que que datetime tenga mas alcances bueno eso no lo se
--
Marcelo Barberis Gutierrez
Sistemas Informaticos
Villa Montes - Bolivia
Telef.: +591-76830544

ZeRoberto

unread,
Feb 18, 2019, 7:38:13 AM2/18/19
to publicesvfoxpro

Carlos Miguel FARIAS

unread,
Feb 18, 2019, 10:55:11 AM2/18/19
to Grupo Fox
En VFP, tablas nativas, datetime guardar año, mes, dia, hora, minutos y segundos.
En postgresql incluye los mismos datos más milisegundos.
Para almacenar lo que tu quieres requieres 17 dígitos para un esquema AAAAMMDDhhmmssnnn (donde nnn son los milisegundos)
Esa cantidad de dígitos los puedes almacenar en un campo monetario (8 caracteres físicos), ubicando los milisegundos en la parte decimal.
Compones una string con
ms = (SECONDS() - INT(SECONDS())) * 1000
s = TTOC(valor_date_time) + "." + STR(ms, 3)
luego conviertes a numérico y luego con NTOM lo conviertes en monetario
también puedes usar menor cantidad de dígitos si tomas la fecha en formato juliano (7 ) y lo concatenas con la lo que da seconds()
Para juliano ver funciones SYS(1), SYS(10) y SYS(11)
Saludos: Miguel


mapner

unread,
Feb 18, 2019, 12:03:41 PM2/18/19
to Comunidad de Visual Foxpro en Español
Si trabajas con algún servidor de bases de datos de tipo cliente/servidor (MySQL, MS-SQL, PostgreSQL, Firebird, etc...) puedes pedir la fecha/hora completa por QUERY, o bien algún servicio remoto que te porvea esa información

Saludos

Víctor Hugo Espínola Domínguez

unread,
Feb 18, 2019, 5:13:44 PM2/18/19
to publice...@googlegroups.com
Debes averiguar como trae VFP un dato datetime con milisegundos desde el motor que usas, creo que es Mysql, si lo trae como character entonces es cuestión de armar la cadena usando la fecha y una transformación de la función seconds.

Saludos,
Víctor.
Lambaré - Paraguay.


syscontri EC

unread,
Feb 21, 2019, 1:36:14 PM2/21/19
to publice...@googlegroups.com
Para obtener los milisegundos del servidor sql

Select datepart(millisecond, getdate()) 

No veo otra forma mas.

Saludos

William López

unread,
Feb 22, 2019, 9:54:21 AM2/22/19
to Comunidad de Visual Foxpro en Español
en Sql Server (microsoft) es:
Select datepart(millisecond, getdate()) 

y te responde con:  2019-02-22 08:45:45:8405242

Verifica con tu servidor de base de datos, los tipos de funciones de fecha del que dispone, normalmente son varios.

Saludos

William López

unread,
Feb 22, 2019, 10:51:17 AM2/22/19
to Comunidad de Visual Foxpro en Español
Para MySql / MariaDb es:
SELECT CAST('2009-12-31 23:59:59.998877' as DATETIME(3));
-> 2009-12-31 23:59:59.998

El sábado, 16 de febrero de 2019, 19:58:14 (UTC-6), Marcelo Barberis escribió:
Reply all
Reply to author
Forward
0 new messages