在 Pervasive 中将数字转换为日期 SQL

Convert number to Date in Pervasive SQL

我正在使用 Actian SQL 版本 12.10.067 并尝试输出一些值。

当运行以下查询时:

SELECT Artikel, Deb, Datum,(BeginVoorraad + Mutatie)AS Stand 
from "Fust"
where Artikel IN (97955)
ORDER BY Artikel DESC

我得到输出:

Artikel Deb    Datum   Stand
97955   200256 41865.0 68.0

现在我想将基准编号 (41865.0) 更改为真实日期,例如 22-08-2018。

希望有人能帮我解答!

我猜您希望将值转换为日期 2014-08-14(Excel 中的值)。如果是:

SELECT Artikel, Deb,
       '1899-12-30'::date + Datum * interval '1 day',
       (BeginVoorraad + Mutatie)AS Stand 
FROM "Fust"
WHERE Artikel IN (97955)
ORDER BY Artikel DESC;

Excel 日期搞砸了,因为它不识别 1900 年为非闰年(在维基百科上查找)。

如果值略有不同,只需更改基准日期即可获得您真正想要的值。

编辑:

在 Pervasive 中,我认为这可以满足您的要求:

dateadd('day', datum, '1899-12-30')

你可以试试这个

SELECT Artikel, Deb, cast(Datum as datetime),(BeginVoorraad + Mutatie)AS Stand 
from "Fust"
where Artikel IN (97955)
ORDER BY Artikel DESC

正确答案是

CAST((Datum -2) AS datetime)