gpt4 book ai didi

oracle更新日期格式掩码

转载 作者:行者123 更新时间:2023-12-02 07:08:52 26 4
gpt4 key购买 nike

我有这个程序,我需要生日字段的格式为 16-JUL-2018,但是当我运行程序时,它会以 16-JUL-18 格式更新。如何以想要的格式更新它?

PROCEDURE update_affiliate (pid                NUMBER,
i_username VARCHAR2,
i_first_name VARCHAR2,
i_birthday DATE)
IS
BEGIN
UPDATE affiliate_v
SET username = UPPER (i_username),
first_name = i_first_name,
birthday = TO_DATE(i_birthday,'DD-MON-YYYY'),
WHERE party_id = pid;

END update_affiliate;

最佳答案

您不需要使用 TO_DATEi_birthday 转换为 DATE,因为它已经是 DATE 数据类型。只需使用:

PROCEDURE update_affiliate (
pid NUMBER,
i_username VARCHAR2,
i_first_name VARCHAR2,
i_birthday DATE)
IS
BEGIN
UPDATE affiliate_v
SET username = UPPER (i_username),
first_name = i_first_name,
birthday = i_birthday,
WHERE party_id = pid;
END update_affiliate;

How to update it in wanted format?

这是一个常见的误解,认为数据库中的日期具有格式。

日期没有格式 - 它是 stored internally to the database as 7-bytes (代表年、月、日、小时、分钟和秒),直到您使用的任何用户界面(即 SQL/Plus、SQL Developer、Java 等)尝试将其显示给您(用户)并转换将其转换为您认为有意义的内容(通常是字符串),即日期被赋予某种格式,以便您(用户)在客户端软件上发现它有意义。

由于您传递的是DATE,因此您不需要执行任何操作。

您可能想问的是:

Now I have updated the date, how can I get the user interface to display the date in the format I want when I query the table?

如果您使用的是 SQL/Plus 或 SQL Developer,那么它将使用 NLS_DATE_FORMAT session 参数来格式化日期。您可以change this using :

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY';

注意:这是一个 session 参数,只会更改当前 session 的格式(不会更改任何其他用户或任何后续 session )。

您还可以将 SQL Developer GUI 中的首选项更改为 described here .

或者您可以只使用 TO_CHAR 并设置您想要的格式:

SELECT party_id,
username,
first_name,
TO_CHAR( birthday, 'DD-MON-YYYY' ) AS birthday
FROM affiliate_v

关于oracle更新日期格式掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51358364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com