在postgres中将文本/字符串转换为日期时,会生成随机日期

时间:2018-07-29 04:49:29

标签: postgresql date to-date

我有一个文本列,指示日期,即20170101

UPDATE table_name
    SET  work_date = to_date(workdate, 'YYYYMMDD');

我使用此命令将其转换为日期。但是,我得到了一个奇怪的结果。我阅读了其他现有文章,但不确定这里出了什么问题。

+----------+---------------+
| workdate |   work_date   |
+----------+---------------+
| 20170211 | 2207-05-09    |
| 20170930 | 2209-04-27    |
| 20170507 | 2208-02-29    |
| 20170318 | 2207-08-24    |
+----------+---------------+

1 个答案:

答案 0 :(得分:0)

我认为您应该误认为要提供给to_date的数据。

  

例如,这些功能的输入不受正常范围的限制,因此to_date('20096040','YYYYMMDD')返回2014-01-17而不是导致错误。

来源:https://www.postgresql.org/docs/9.6/static/functions-formatting.html