sql - Postgres to_date() 函数返回错误的年份
问题描述
我使用了一个查询:
select to_date(substring('0303653597' from 0 for 7),'DDMMYY')
预期产量:1965-03-03
实际产量:2065-03-03
当我将字符串设置为 030370 或更高时,它的行为正确。
预定义的功能有什么问题?
我们可以使用任何其他功能来实现相同的功能吗?
解决方案
根据文档:
在 to_timestamp 和 to_date 中,如果年份格式规范小于四位,例如 YYY,并且提供的年份小于四位,则年份将调整为最接近 2020 年,例如,95 变为 1995。
在您的情况下,2065 比 1965 更接近 2020,因此它默认为 2065。
推荐阅读
- javascript - 一个 .js 创建的 HTML 按钮成功调用 .js 函数,但清除了 html 页面上的所有 .css
- amazon-web-services - 如果响应正文不是字符串化,aws api 网关返回“内部服务器错误”
- javascript - 同步 SQL 查询后 res.send 将不起作用
- python - 将文本文件转换为字典
- html - 侧边栏滚动不起作用。只有页面滚动有效
- python - “for i in range (...)”之前的内容
- angular - 为什么在角度区域之外运行仍然会触发变化
- php - 如何将 daterangepicker 的值传递到另一个 php 页面
- julia - Julia 包“没有已知版本!” 尝试添加包时
- c# - Blazor - Windows 身份验证