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/