在普及SQL中将数字转换为日期

时间:2018-08-23 12:27:28

标签: sql date 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。

我希望有人能为我提供正确答案!

3 个答案:

答案 0 :(得分:1)

我猜想您要将值转换为日期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年定为非-年(请在Wikipedia上查找)。

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

编辑:

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

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

答案 1 :(得分:1)

正确答案是

CAST((Datum -2) AS datetime)

答案 2 :(得分:0)

您可以尝试

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