我希望将十进制数据转换/转换为日期数据。我已经上网了,但仍在挣扎。你能帮我吗? “值”是双精度,在这里我将其转换为varchar。从那时起,我尝试使用convert,但是仍然无法获取日期值。
谢谢!
选择强制类型转换(值作为varchar(8))date_value,值
例如:值43099应该显示为12/30/2017。
答案 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;