迄今为止的Postgres Double Precision

时间:2018-12-15 16:11:36

标签: postgresql date casting precision

我希望将十进制数据转换/转换为日期数据。我已经上网了,但仍在挣扎。你能帮我吗? “值”是双精度,在这里我将其转换为varchar。从那时起,我尝试使用convert,但是仍然无法获取日期值。

谢谢!

选择强制类型转换(值作为varchar(8))date_value,值

例如:值43099应该显示为12/30/2017。

Sample varchar(8) | value

1 个答案:

答案 0 :(得分:1)

根据您的微薄示例进行猜测,您可能需要这样做:

SELECT date '1899-12-30' + 43099; -- returns date '2017-12-30'

为此,您需要将value列强制转换为integer

SELECT date '1899-12-30' + value::int; 

意思是,该数字可能代表自1900年以来的天数(存在我无法解释的2分错误)。

integer添加到date意味着增加天数。

如果您的value可以有小数位数,则可以用类似的方式计算时间戳:

SELECT timestamp '1899-12-30' + interval '1 day' * value;