Função SQL Server para Converter Data/Hora em números Inteiros Clarion
Publicado em: 27-09-2010 | Por: Adriano Santos | Em: Notícias
0
Os campos Data em Clarion são armazenados como o número inteiro (LONG) de dias de 28 de dezembro de 1800. E campos Hora em Clarion são o número de 1 / 100 segundos a partir da meia-noite + 1.
Algumas funções para ajudar você a converter no SQL Server:
CREATE FUNCTION dbo.SQL2ClaDate (@SQL_Date_Time DATETIME) RETURNS INT AS BEGIN RETURN ISNULL(CAST(DATEDIFF(d, '1800-12-28', @SQL_Date_Time) AS INT), 0) END CREATE FUNCTION dbo.SQL2ClaTime (@SQL_Date_Time DATETIME) RETURNS INT AS BEGIN RETURN ISNULL((CAST(DATEDIFF(ss, CONVERT(DATETIME, CONVERT(VARCHAR(10), @SQL_Date_Time, 120) + ' 00:00:00.000'), @SQL_Date_Time) AS INT) * 100) + 1, 0) END CREATE FUNCTION dbo.Cla2SQLDate (@Cla_Date INT) RETURNS DATETIME AS BEGIN RETURN DATEADD(day, @Cla_Date, '1800-12-28') END CREATE FUNCTION dbo.Cla2SQLTime (@Cla_Time INT) RETURNS DATETIME AS BEGIN RETURN DATEADD(second, INT((@Cla_Time - 1) / 100), 0) END CREATE FUNCTION dbo.Cla2SQLTimeStr (@Cla_Time INT) RETURNS CHAR(12) AS BEGIN RETURN RTRIM( RIGHT( (CAST(DATEADD(second, FLOOR((@Cla_Time - 1) / 100), 0) AS CHAR(24))), 13 ) ) END




