我有一列包含格式的日期yyyy-mm-dd
。现在我正在运行一个SELECT
查询,将该日期转换为dd/mm/yyyy
使用TO_CHAR(dob :: DATE, 'dd/mm/yyyy') AS dob
它工作得很好。现在我遇到的问题是该列中有一些坏记录,下面是一个有好记录和坏记录的示例表:
| id | dob |
|----|------------|
| 1 | 2019-12-31 | // this returns 31/12/2019
| 2 | 31-12-2019 | // BAD RECORD, this returns an error
|----|------------|
我在 id 2 上遇到的错误是:
ERROR: date/time field value out of range: "31-12-2019"
HINT: Perhaps you need a different "datestyle" setting.
SQL state: 22008
我想要的是有条件地检查是否可以,TO_CHAR(dob :: DATE, 'dd/mm/yyyy')
否则只需使用 dob 而不进行转换。有什么办法把它拉下来?
我正在使用 Postges 12