Sql 无法从表中截断日期
以下查询返回:Sql 无法从表中截断日期,sql,oracle,Sql,Oracle,以下查询返回: select logical_date from logical_date; 4/24/2016 在使用TRUNC()时,我得到 逻辑日期只提供日期而不提供时间
select logical_date from logical_date;
4/24/2016
在使用TRUNC()时,我得到
逻辑日期只提供日期而不提供时间
date
始终具有日期和时间组件-有时客户端界面将设置为仅显示部分数据(即仅显示日期组件)
NLS\U日期格式决定日期的格式。您可以通过查询找到当前格式:
SELECT VALUE
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
在您的情况下,格式掩码似乎设置为MM/DD/YYYY
您可以使用以下方法更改日期格式:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
(或您希望使用的任何格式掩码)
那你就可以了
select logical_date from logical_date;
这将输出如下内容:
24-APR-2016 11:22:33
或
这将输出:
24-APR-2016 00:00:00
DATE
始终具有日期和时间组件-有时客户端界面将设置为仅显示部分数据(即仅显示日期组件)
NLS\U日期格式决定日期的格式。您可以通过查询找到当前格式:
SELECT VALUE
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
在您的情况下,格式掩码似乎设置为MM/DD/YYYY
您可以使用以下方法更改日期格式:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
(或您希望使用的任何格式掩码)
那你就可以了
select logical_date from logical_date;
这将输出如下内容:
24-APR-2016 11:22:33
或
这将输出:
24-APR-2016 00:00:00
最好的使用方法是jarlh在这样的评论中建议的
SELECT TRUNC(logical_date) from logical_date
SELECT TRUNC((select logical_date from logical_date)) as logical_date
FROM DUAL;
但是如果你真的想用你想要的方式使用它,那么就用这样的东西
SELECT TRUNC(logical_date) from logical_date
SELECT TRUNC((select logical_date from logical_date)) as logical_date
FROM DUAL;
最好的使用方法是jarlh在这样的评论中建议的
SELECT TRUNC(logical_date) from logical_date
SELECT TRUNC((select logical_date from logical_date)) as logical_date
FROM DUAL;
但是如果你真的想用你想要的方式使用它,那么就用这样的东西
SELECT TRUNC(logical_date) from logical_date
SELECT TRUNC((select logical_date from logical_date)) as logical_date
FROM DUAL;
从逻辑日期中选择TRUNC(逻辑日期)
?为什么子查询?为什么不直接从表中选择截断的日期呢?你的专栏确实有时间,即使是午夜和/或你的客户没有显示。这受您的NLS_日期_格式的影响,该格式已在的答案中提到。我不确定您期望的结果是什么。如果您有一个名为logical\u date
的表,其中只有一条记录包含一个名为logical\u date
的列,那么为什么您必须截断?为什么这不只是表中的一个日期(即已被截断)?从logical_date中选择TRUNC(logical_date)
?为什么子查询?为什么不直接从表中选择截断的日期呢?你的专栏确实有时间,即使是午夜和/或你的客户没有显示。这受您的NLS_日期_格式的影响,该格式已在的答案中提到。我不确定您期望的结果是什么。如果您有一个名为logical\u date
的表,其中只有一条记录包含一个名为logical\u date
的列,那么为什么您必须截断?为什么这不只是表中的一个日期(即已被截断)?