我有一个表,其中有一个列日期类型order_date。也许你需要一个不同的“日期样式”设置
查询:
INSERT INTO uni_data_temp(sale_order_item_code,
order_date, sale_order_item_status, tracking_number, dispatch_date,
user_id) VALUES ('1000932515', cast('16/05/2015' as date), 'DISPATCHED', 'UNIPAYP1958141', '2015/05/20', '4')
当我运行此查询提示错误:
ERROR: date/time field value out of range: "16/05/2015" SQL state: 22008 Hint: Perhaps you need a different "datestyle" setting. Character: 380
然后,我改变了查询
INSERT INTO uni_data_temp(sale_order_item_code,
order_date, sale_order_item_status, tracking_number, dispatch_date,
user_id) VALUES ('1000932515', cast('2015/05/16' as date), 'DISPATCHED', 'UNIPAYP1958141', '2015/05/20', '4')
它工作正常。
但我的问题是我的日期可能是任何风格(yyyy/mm/dd或dd/mm/yyyy)我怎么能按照databse进行转换?
任何一种日期格式转换成系统数据库。
谢谢
你可以用'SELECT TO_CHAR(NOW(), 'YYYY/MM/DD')::日期;' –
我怎么可以把这个在我的表,我用'16/05/2015' 年,而不是现在()它仍然给错误:function to_char(unknown,unknown)is not unique – YAM
如果日期“可能是任何风格“你运气不好。 PG可以识别多种日期格式,但有些不明确,有些默认解释(在你的情况下是'mm/dd/yyyy')。你应该在客户端设置一些标准,以便所有的日期都以特定的格式输入,然后你可以使用'to_date()'让PG了解它,以防它不是ISO风格。 – Patrick