Я столкнулся с столбцом, который содержит даты (хранятся как текст) в двух разных форматах. Использование to_date() требует указания формата, поэтому он будет работать только с некоторыми из них.Преобразование на дату, когда разные форматы в том же столбце
Есть ли способ конвертировать оба формата параллельно с SELECT?
created_at | id
---------------------------+---------
2015-08-27 04:59:40 -0400 | 9993833
2015-08-27T03:40:07+12:00 | 9984557
2015-08-26 03:04:35 -0400 | 9980626
2015-08-26T13:11:51+12:00 | 9978784
2015-08-26T06:18:04+12:00 | 9974751
2015-08-25 00:21:47 -0400 | 9965448
2015-08-24T15:01:09+12:00 | 9952732
2015-08-23 22:47:32 -0400 | 9952671
2015-08-24T12:49:57+12:00 | 9952099
2015-08-24T12:04:04+12:00 | 9951839
2015-08-23T17:49:24+12:00 | 9948236
2015-08-23T11:37:53+12:00 | 9947015
2015-08-21 03:13:16 -0400 | 9934367
2015-08-21T18:36:18+12:00 | 9934148
2015-08-21T17:23:30+12:00 | 9933522
2015-08-21T15:33:50+12:00 | 9932949
2015-08-20 12:06:37 -0400 | 9927425
2015-08-21T03:16:58+12:00 | 9926932
Было бы возможно использовать CASE ... КОГДА конструируйте, если postgresql поддерживает его. – Michal
Что вам нужно, только часть даты или вся временная метка? – jarlh
Эти форматы не такие разные, postgresql может автоматически идентифицировать их, просто отбрасывать их в метку времени с часовым поясом, f.ex. 'select created_at :: timestamptz'. – pozs