a)因此,我有一个巨大的.csv数据文件夹,其中有一列关于持续时间的数据,其中单元格是“x min y sec”(例如15 min 29 sec)或“x hrs y min z sec”(例如1 hrs 48 min 28 sec)。单元格由文本格式化。
我想把它们批量更改为秒数,但我不知道从哪里开始。我无法以其他格式获取数据。
我想用“hrs”、“min”或“sec”作为分隔符,但我不知道如何从那里移动。我还考虑过使用“”作为分隔符,但是根据持续时间的不同,第一列将填充小时或分钟。
我还考虑过使用PostgreSQL的SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'),但是我还没有弄清楚如何在表中的列上使用它。
b)是否有更好的方法将此时间格式“2014年3月14日星期五11:29:27 EST”更改为纪元时间?现在我正在考虑在Excel中使用宏来去掉“Fri”和“EST”,然后将这些列放回一起,然后在PostgreSQL中使用to_timestamp函数。

最佳答案

你可以:

SELECT EXTRACT(EPOCH FROM column_name::interval)
FROM my_table;

interval可以使用常规时间单位(如hour)、其缩写(hr)和复数(hours)。但我不确定复数和缩写的组合(hrs)。如果不起作用,UPDATE列和replace()子字符串“hrs”到“hours”。
如果要在表中保存秒数,请将上述语句转换为UPDATE语句:
UPDATE my_table SET seconds_column = extract(epoch FROM column_name::interval);

关于excel - 将'x hrs y min z sec'转换为秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30273289/

10-11 01:43