从数据库中检索日期作为另一种格式

时间:2015-05-29 03:54:25

标签: asp.net oracle date format

我正在使用oracle作为我的数据库,我有一个taskdate列作为TIMESTAMP。它在数据库中保存的格式为 2015/5/29 10:27:04.000000 AM 。当我将其检索出来时,可以将其转换为 2015-05-29 这种格式吗?

2 个答案:

答案 0 :(得分:2)

  

它在数据库中保存的格式是5/29/2015 10:27:04.000000 AM

日期/时间戳没有任何格式。 Oracle不会以您看到的格式存储日期/时间戳。您看到的格式仅适用于显示目的。 Date内部存储在7个字节中,这是Oracle的专有格式

  

当我将其检索出来时,我可以将其转换为2015-05-29这种格式吗?

用于显示:

您需要使用 TO_CHAR 以及所需的格式模型以所需的格式显示。

例如,

SQL> SELECT SYSTIMESTAMP, TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD') my_tmstmp FROM DUAL;

SYSTIMESTAMP                             MY_TMSTMP
---------------------------------------- ----------
29-MAY-15 11.40.25.054000 AM +05:30      2015-05-29

SQL>

日期算术:

对于日期算术,您应将数据类型保留为日期本身。您可以使用 TRUNC 截断时间部分,只留下日期部分:

例如,

SQL> alter session set nls_date_format='YYYY-MM-DD';

Session altered.

SQL> SELECT SYSTIMESTAMP, TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;

SYSTIMESTAMP                             MY_TMSTMP
---------------------------------------- ----------
29-MAY-15 11.42.41.255000 AM +05:30      2015-05-29

SQL>

答案 1 :(得分:1)

当然,你可以。您可以使用“cast .. as date”将值转换为日期,然后将其截断(如果您希望将格式保留为日期)或使用to_char(如果希望将值作为字符)。 这两个选项的最终表达式可能是这样的:

TypeError: stc.$leftScrollArrow.add is not a function
at ElementsHandler.p.setElementReferences (scrolling-tabs.js:231)
at ElementsHandler.p.initElements (scrolling-tabs.js:170)
at __initTabsAfterTimeout (scrolling-tabs.js:525)
at angular-1.3.15.min.js:16298
at completeOutstandingRequest (angular-1.3.15.min.js:4924)
at angular-1.3.15.min.js:5312(anonymous function) @ angular-1.3.15.min.js:11654

SELECT TRUNC(CAST(column AS DATE)) FROM your_table...