在 Oracle 中将字符串转换为日期 SQL
Convert string to date in Oracle SQL
我试图在 Oracle SQL.
中将 string
列转换为 date
这是我的数据值示例:
'03/12/14 11:00:00'
这是我的查询:
select to_date(A,'DD/MM/YY HH24:MI:SS')
from MyTable
这是一个输出示例:
03-DEC-14
为什么我的查询 return 只有日期而不是小时?
您可以使用时间戳
select to_timestamp(A, 'DD/MM/YY HH24:MI:SS') from MyTable
您正在尝试显示 日期时间值。使用 TO_CHAR 以及正确的 FORMAT MODEL.
例如,
select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual;
A DATE 由日期和时间部分组成。您只需要确保使用适当的格式模型来显示它。否则,您最终会得到一种格式,该格式取决于您的 特定于区域设置的 NLS 设置。
假设您使用的是 SQL*Plus(或 SQL 开发人员),当 DATE
值 显示时应用默认值 NLS_DATE_FORMAT。要验证您当前的格式,您可以 运行:
select value
from nls_session_parameters
where parameter = 'NLS_DATE_FORMAT';
要对此进行调整,运行:
alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';
那你也应该看看时间吧
如果您想要查询 returns 日期的时间部分而无需更改 nls_date_format
,您可以将从 to_date 函数获得的日期转换为文本表示(默认文本表示是 dd-Mon-yy
,如您所见)像这样:
select to_char(
to_date(A,'DD/MM/YY HH24:MI:SS'),
''DD/MM/YY HH24:MI:SS')
from MyTable;
理想情况下,MyTable 的 A 列应该定义为日期列而不是 varchar2 列。这样做有几个原因;数据完整性,以及更好的 SQL 优化。
我试图在 Oracle SQL.
中将string
列转换为 date
这是我的数据值示例:
'03/12/14 11:00:00'
这是我的查询:
select to_date(A,'DD/MM/YY HH24:MI:SS')
from MyTable
这是一个输出示例:
03-DEC-14
为什么我的查询 return 只有日期而不是小时?
您可以使用时间戳
select to_timestamp(A, 'DD/MM/YY HH24:MI:SS') from MyTable
您正在尝试显示 日期时间值。使用 TO_CHAR 以及正确的 FORMAT MODEL.
例如,
select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual;
A DATE 由日期和时间部分组成。您只需要确保使用适当的格式模型来显示它。否则,您最终会得到一种格式,该格式取决于您的 特定于区域设置的 NLS 设置。
假设您使用的是 SQL*Plus(或 SQL 开发人员),当 DATE
值 显示时应用默认值 NLS_DATE_FORMAT。要验证您当前的格式,您可以 运行:
select value
from nls_session_parameters
where parameter = 'NLS_DATE_FORMAT';
要对此进行调整,运行:
alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';
那你也应该看看时间吧
如果您想要查询 returns 日期的时间部分而无需更改 nls_date_format
,您可以将从 to_date 函数获得的日期转换为文本表示(默认文本表示是 dd-Mon-yy
,如您所见)像这样:
select to_char(
to_date(A,'DD/MM/YY HH24:MI:SS'),
''DD/MM/YY HH24:MI:SS')
from MyTable;
理想情况下,MyTable 的 A 列应该定义为日期列而不是 varchar2 列。这样做有几个原因;数据完整性,以及更好的 SQL 优化。