Gus*_*Gus 3 postgresql excel date
因此,我有大量格式不正确的 excel 文件,因此它们的日期没有作为日期读取,而是作为它们使用的日期序列(我认为自 1900-1 以来的天数) -1?)。例如:41917.0054050926 真的是 10/5/2014 12:07:47 AM。
我需要的只是实际日期,而不是时间。我知道我可以通过执行 41917/365.25,四舍五入并将其添加到 1900 来获得年份,但我不确定如何获得日期和月份。postgres 中是否有任何内置的东西来处理这个问题?如果没有,有没有人知道找到日期和年份的算术方法?
谢谢!
我刚刚遇到了这个问题并编写了一个 plpgsql 函数来处理它。请注意,它仅适用于整数,这意味着它仅适用于日期,而不适用于日期和时间。其他人可以随意扩展它。
CREATE OR REPLACE FUNCTION To_Timestamp_From_Excel (ExcelDate integer)
RETURNS timestamp without time zone AS $$
BEGIN
   IF ExcelDate > 59 THEN
    ExcelDate = ExcelDate - 1;
   END IF;
   RETURN date '1899-12-31' + ExcelDate;
END;
$$ LANGUAGE plpgsql;
如果您对日期和时间进行了编码,或者您的字段类型是文本,则需要像这样调用它:
UPDATE myTable set MyDateField = to_Timestamp_From_Excel(MyDateField::integer)
| 归档时间: | 
 | 
| 查看次数: | 3731 次 | 
| 最近记录: |