我有一个名为TIMEVALUE的列的表,它是一个nvarchar 2类型的列。的格式就像例子:'29-OCT-23 05.30.03.94200000 PM',我需要检索数据为'29-10-23 05.30.03',并能够与它作为日期。to_timestamp或to_datetime在这种情况下工作。有什么建议吗?我希望从列中检索数据作为datetime
shstlldc1#
我有一个表,其中有一个名为TIMEVALUE的列,它是一个nvarchar2类型的列。格式就像例子:29-OCT-23 05.30.03.942000000 PM,我需要检索数据[...],并能够使用它作为日期。使用TO_TIMESTAMP,然后CAST到DATE:
TIMEVALUE
nvarchar2
29-OCT-23 05.30.03.942000000 PM
TO_TIMESTAMP
CAST
DATE
SELECT CAST( TO_TIMESTAMP( timevalue, 'DD-MON-RR HH12.MI.SS.FF AM', 'NLS_DATE_LANGUAGE=English' ) AS DATE ) FROM table_name;
字符串我需要检索数据为'29-10-23 05.30.03'在Oracle中,DATE是一种二进制数据类型,由7个字节组成,代表世纪、世纪年、月、日、小时、分钟和秒。如果ALWAYS具有这7个组件,则它Never以任何特定的人类可读格式存储。因此,如果您想要一个DATE,那么您想要一个没有格式的二进制值(并且您可以更改客户端应用程序上的首选项以确定客户端应用程序如何格式化日期-在SQL Developer中,您将使用ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RR HH24.MI.SS';或使用首选项菜单)如果你想要一个特定的格式,不管客户端如何格式化日期,那么你需要一个格式化的字符串(而不是日期):
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RR HH24.MI.SS';
SELECT TO_CHAR( TO_TIMESTAMP( timevalue, 'DD-MON-RR HH12.MI.SS.FF AM', 'NLS_DATE_LANGUAGE=English' ), 'DD-MM-RR HH24.MI.SS' ) FROM table_name;
型
29-10-23 17.30.03
1条答案
按热度按时间shstlldc1#
我有一个表,其中有一个名为
TIMEVALUE
的列,它是一个nvarchar2
类型的列。格式就像例子:29-OCT-23 05.30.03.942000000 PM
,我需要检索数据[...],并能够使用它作为日期。使用
TO_TIMESTAMP
,然后CAST
到DATE
:字符串
我需要检索数据为'29-10-23 05.30.03'
在Oracle中,
DATE
是一种二进制数据类型,由7个字节组成,代表世纪、世纪年、月、日、小时、分钟和秒。如果ALWAYS具有这7个组件,则它Never以任何特定的人类可读格式存储。因此,如果您想要一个
DATE
,那么您想要一个没有格式的二进制值(并且您可以更改客户端应用程序上的首选项以确定客户端应用程序如何格式化日期-在SQL Developer中,您将使用ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RR HH24.MI.SS';
或使用首选项菜单)如果你想要一个特定的格式,不管客户端如何格式化日期,那么你需要一个格式化的字符串(而不是日期):
型
29-10-23 17.30.03
。