PostgreSQL:组合表列以创建时间戳

时间:2014-09-01 14:14:49

标签: database postgresql timestamp

我有5个单独的列,其中包含表格中的时间信息'信息': 列名{格式例如。}(变量类型)

day {Fri}(Varchar)
month {Apr}(Varchar)
date {18}(Varchar)
time {22:59:30}(Varchar)
year {2014}(Varchar)

如何在表格中创建另一列,其中包含大多数这些组合变量的时间戳? 谢谢

1 个答案:

答案 0 :(得分:0)

您可以将值连接成字符串,然后将其强制转换为时间戳。

select (month || ' ' || date || ', ' || year || ' ' || time)::timestamp

这假设连接产生有效的时间戳。由于您的所有列都定义为VARCHAR,我认为它不太可能在第一次正常工作。您可能需要修复一些不良数据。

在它工作之后,您应该从结果中提取星期几,并将其与“日”列进行比较。如果它们不相同,则还有其他问题需要解决。

认真考虑存储实际时间戳而不是片段。