Postgresql 日期格式
我有一个 Web 应用程序(用 python/django 编写),(由于规范不正确)Web 表单期望“YYYY-mm-dd”日期格式,而其他应用程序则使用“dd/mm/yy”日期格式。
有没有办法告诉 postgresql 接受两种格式的日期?例如,尝试“dd/mm/yy”,如果失败,则尝试“yyyy-mm-dd”。
那太棒了。
I have a web application (written with python/django) that (due a bad specification) Web Forms expecting "YYYY-mm-dd" date format and others using "dd/mm/yy" date format.
Is there a way to tell postgresql to accept dates in both formats? for example, to try "dd/mm/yy" and, if it fails, then try "yyyy-mm-dd".
That would be awesome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自精细手册:
因此 PostgreSQL 应该能够处理您输入的几乎任何日期格式。但是,您的“dd/mm/yy”格式不明确。但是,有
DateStyle
配置参数可以帮助解决这种歧义。
例如:
也就是说,我建议在内部将所有内容移至 ISO 8601 (YYYY-MM-DD),并在应用程序边缘处理转换。 OTOH,有现实需要应对,所以你应该尽一切努力让它继续下去。
From the fine manual:
So PostgreSQL should be able to deal with just about any date format you throw at it. Your "dd/mm/yy" format is, however, ambiguous. But, there is the
DateStyle
configuration parameter to help with such ambiguity.For example:
That said, I'd recommend moving everything to ISO 8601 (YYYY-MM-DD) internally and handle the conversions at the edges of the application. OTOH, there is reality to contend with so you should do whatever you have to do to make it go.
如果这些是唯一可能的两种格式,那么最好明确只允许这些格式,而不是依赖 postgres 来解释。例如:
If those are the only two formats possible then it may be better to explicitly allow only those, rather than rely on postgres to interpret. For example: