Oracle中的日期格式输出问题

问题描述 投票:0回答:2

我有一个要求,我必须将日期字段插入varchar列。我直接将记录插入表中而没有任何类型转换。在一个环境中,它插入29-AUG-16,而在另一个环境中,它存储为29-08-2016。因此,我对数据的后续处理失败了。我希望在这两种环境中数据都是DD-MON-RR。在两种环境中,nls格式是nls会话参数表中的DD-MON-RR。两种环境差异的原因是什么?我尝试使用TO_CHAR(DATECOL,'DD-MON-RR')进行类型转换但仍然以dd-mm-yyyy格式插入数据

sql oracle date nls
2个回答
2
投票

您可以使用TO_CHAR函数将日期转换为字符并将其插入varchar列。

您应该在插入查询中使用类似这样的内容,而不是简单地编写date_column

INSERT INTO date_tab VALUES(TO_CHAR(date_col, 'DD-MON-YY'))


0
投票

根据服务器默认值,客户端默认值和显式会话设置,每个会话设置NLS值。因此,如果您需要所有会话的标准格式,则必须在操作级别设置所需的NLS,以覆盖所有可能的(几乎不可预测的)NLS结果组合。在to_char函数中,您应该将第三个参数(NLS)设置为所选的NLS日期格式。

© www.soinside.com 2019 - 2024. All rights reserved.