从数据库中检索日期作为另一种格式
retrieve date from database as another format
我使用 oracle 作为我的数据库,我有一个 taskdate 列作为 TIMESTAMP。它在数据库中保存的格式是 5/29/2015 10:27:04.000000 AM。检索出来的时候可以转成2015-05-29这种格式吗??
当然可以。您可以使用 "cast .. as date" 将值转换为日期,然后将其截断(如果您希望将格式保留为日期)或使用 to_char (如果希望将值作为字符)。
两个选项的最终表达式可能是这样的:
SELECT TRUNC(CAST(column AS DATE)) FROM your_table...
或
SELECT TO_CHAR(column, 'yyyy-mm-dd') FROM your_table...
the format it save in database is 5/29/2015 10:27:04.000000 AM
Date/Timestamps 没有任何 格式 。 Oracle 不会以您看到的格式存储 date/timestamps。您看到的格式仅用于显示目的。 日期在内部存储为 7 个字节,这是 Oracle 的专有格式。
can I convert it into 2015-05-29 this format when I retrieve it out??
显示:
您需要使用 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>
对于日期算术:
对于日期算法,您应该将 数据类型 保留为 date 本身。您可以使用 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>
我使用 oracle 作为我的数据库,我有一个 taskdate 列作为 TIMESTAMP。它在数据库中保存的格式是 5/29/2015 10:27:04.000000 AM。检索出来的时候可以转成2015-05-29这种格式吗??
当然可以。您可以使用 "cast .. as date" 将值转换为日期,然后将其截断(如果您希望将格式保留为日期)或使用 to_char (如果希望将值作为字符)。 两个选项的最终表达式可能是这样的:
SELECT TRUNC(CAST(column AS DATE)) FROM your_table...
或
SELECT TO_CHAR(column, 'yyyy-mm-dd') FROM your_table...
the format it save in database is 5/29/2015 10:27:04.000000 AM
Date/Timestamps 没有任何 格式 。 Oracle 不会以您看到的格式存储 date/timestamps。您看到的格式仅用于显示目的。 日期在内部存储为 7 个字节,这是 Oracle 的专有格式。
can I convert it into 2015-05-29 this format when I retrieve it out??
显示:
您需要使用 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>
对于日期算术:
对于日期算法,您应该将 数据类型 保留为 date 本身。您可以使用 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>